01. Requirements - akyagmur/SWE599-term-project GitHub Wiki
Requirements
Login&Registration
The application shall ask users to provide their name, age, phone number, email address and password during registration.
The application shall allow users to register using their mobile phone numbers and force them to verify it using OTP.
The application shall allow users to log in using their mobile phone number and password.
Profile
The application shall allow users to select their profile picture from the gallery or take a new picture using the camera.
The application shall allow users to change their password, email address, phone number, and name.
The application shall allow users to reset their passwords with email address or phone number.
The application shall allow users to add their most used top 5 addresses.
Emergency Contacts
The application shall allow users to add family members as emergency contacts with their name, phone number, and relationship information.
The application shall ask permission from users to access their contacts and allow them to select their emergency contacts from their contacts.
The application shall notify family members and ask their permissions when a user adds them as an emergency contact.
The application shall allow users to remove their emergency contacts.
The application shall allow users to categorize their emergency contacts as inner circle (mother, father, siblings) or outer circle (cousins, aunts, uncles).
Safety Status
The application shall allow users to respond to their emergency contacts' “are you safe?” requests with a predefined action (safe, unsafe, injured) or with a custom message.
The application shall allow users to request their emergency contacts' safety status.
The application shall allow users to report their safety status by selecting one of the predefined options: Safe, Unsafe, and Injured.
The application shall allow users to report their safety status by typing a custom message.
The application shall send notifications to the user to inquire about their status three times a day, once every eight hours, for 3 days in the event of a disaster.
The application shall not send another request to the user when the user responds to a request in a day.
The application shall inform users' emergency contacts about users’ responses to automatic notifications sent by the application via in-app notifications.
The application shall send notifications as text messages to users' emergency contacts when the internet connection is unavailable.
The application should not allow other users to send a "are you safe" request to a user when there is already an existing request sent to that user.
Administration
The application shall allow the administrator to mark a disaster area on the map.
The application shall allow the administrator to mark a disaster area by selecting a city, district, or neighbourhood.
The application shall allow the administrator to send push notifications to users in the disaster area to check on their safety.
The application shall allow the administrator to select the frequency of sending push notifications to users in the disaster area.
The application shall allow the administrator to select the time of sending push notifications to users in the disaster area.
Location
The application shall ask permission from users to access their location.
The application shall keep users' location info every 24 hours for the last 365 days.
The application shall allow users to share their locations with emergency contacts as current locations on a map or coordinates.
The application shall allow users to request their emergency contacts' locations.
The application shall allow emergency contacts to see users' last location on a map.