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.