NSLJ / Wings

With Wings, You Never Walk Alone
0 stars 3 forks source link

Wings: With Wings, You Never Walk Alone

Demo: Walkthrough (Updated 6/12/2021)

**Note: The map settings on the right is shown to display how to imitate a user's current location!


Table of Contents

  1. Overview
  2. Product Spec
  3. Wireframes
  4. Schema

Overview:

Description

Due to the recent rise of hate-crimes, the risk of public danger has significantly escalated for the general population. In addition to this, with the slow integration of in-person activities during the pandemic, countless college campuses are preparing for a large percentage of in-person courses. With both the growth of potential harm and actual public population (especially that of college campuses), Wings inspired to help provide a safer commmunity in these uncertain times.

Wings is an Android application that connects users to others when they feel unsafe in their current conditions.

Users who are connected are confirmed to be safe "walking buddies" for each other, and are intended to walk together to some common, agreed upon destination. However, Wings intends to offer multiple ways to provide trusted safety sources such as: immediate connection to the police, one button notifcation to emrgency contacts, routing to the nearest registered safe spaces. Several safety precautions are taken during this pairing of users. Wings constantly tracks both users and saves real time information in a real time database. Both users' emergency information are held and and may be contacted at any time, even without a pairing to another user. Users may also choose to leave their buddy at any time.

App Evaluation:

Product Specifications:

1. User Stories (Required and Optional)

Required Must-have Stories

Optional Nice-to-have Stories

2. Screen Archetypes

3. Navigation

Tab Navigation (Tab to Screen)

Flow Navigation (Screen to Screen) Login

Wireframes:

[BONUS] Digital Wireframes & Mockups

https://www.figma.com/file/FvkFBW65HVYdpSDwqsKRMM/Wings?node-id=0%3A1

[BONUS] Interactive Prototype

https://www.figma.com/proto/FvkFBW65HVYdpSDwqsKRMM/Wings?node-id=4%3A8&scaling=scale-down&page-id=0%3A1

Schema

Models

User Property Type Description
fname String user's first name
lname String user's last name
email String user's CPP email (MUST end in "@cpp.edu")
password String user's password
PIN Number user's private 4-digit number to confirm ALL significant decisions!
objectId String uniquely identifies this User in the Parse database
username String user's username in their CPP email (everything before the "@cpp.edu")
profileImage File the image to be displayed on the user's profile
trustedContacts Array[TrustedContact] user's trusted contacts to be notified in case of emergency, max size of 5
friends List of String (Array in Parse) List of User objectId's that the user wants to keep in contact with
currentLocation Geopoint the user's current location
profileSetUp boolean whether or not the user's profile is set up
rating Number average rating
TrustedContact Property Type Description
user Pointer pointer to the User object who the Trusted Contact is associated with
fname String Trusted contact's first name
lname String Trusted contact's last name
relationship String Trusted contact's relationship to the user
phone String Trusted contact's mobile phone number
email String Trusted contact's email
Buddy Property Type Description
user Pointer points to the User object who currently needs to get to there destination
meetingLocation Geopoint where the Buddy will meet their partner
receivedBuddyRequests List of BuddyRequest (Array in Parse) List of all received BuddyRequests, need to respond to
sentBuddyRequests List of BuddyRequest (Array in Parse) List of all sent BuddyRequests, waiting for a response
hasBuddy boolean whether or not the Buddy is already paired
onMeetingBuddy boolean whether or not the Buddy is currently meeting with their partner
onBuddyTrip boolean whether or not the Buddy is currently on a BuddyTrip
buddyTrip Pointer points to the BuddyTrip object the Buddy is currently on IF applicable, null otherwise
objectId String uniquely identifies this User on this specific BuddyTrip, null if hasBuddy = false
BuddyRequest Property Type Description
objectId String uniquely identifies this BuddyRequest
sender Pointer points to the Buddy object who sent the BuddyRequest
receiver Pointer points to the Buddy who needs to respond to the BuddyRequest
isConfirmed boolean whether or not the BuddyRequest has been approved by both Buddies, otherwise, is waiting for a response
methodOfMeeting String who's location the Buddies will meet at: "sender", "receiver", or "halfway"
meetingLocation Geopoint the location where the buddies will head towards to meet
chosenTargetLocation Geopoint where the buddies are ultimately walking together for
BuddyTrip Property Type Description
objectId String uniquely identifies this BuddyTrip
buddyOne Pointer points to the one of the Buddy objects in question
buddyTwo Pointer points to the other Buddy object in question
targetDestination Geopoint where the buddies are ultimately walking together for
senderLocation Geopoint current location of the request sender
receiverLocation Geopoint current location of the request receiver
EST Number the calculated approximate time it will take for the pair to arrive at their targetDestination (minutes)
timeElasped Number how long it has been since the BuddyTrip began (minutes)

Networking

List of network requests by screen