Incremental Deliverable 1 Requirements Document - SeoulSKY/safe-zone-system GitHub Wiki

Requirements

  • All requirements gathered by talking with the stakeholder this deliverable

Non-Functional Requirements

General Requirements

  • The software must be available as an Android App
  • The software must be available as an iOS App
  • The software must be available as a Website
  • The software must have an 99% uptime
  • The software must support at minimum 1000 daily users

Functional Requirements

App Requirements

  • The mobile app must cache relevant information
  • The mobile app must indicate if it is in offline mode
  • The mobile app must used cached data if an internet connection is not available
  • The mobile app must allow for the creation of message in a bottle in offline mode
  • The mobile app must send any message in a bottle to the server upon reconnecting to the internet

User Requirements

  • Users must be able to create accounts
  • Users must be able to create an account using single sign on
  • Users must be able to login to their account
  • Users must be able to logout from their account
  • Users must be able to delete an account
  • Users must be able to verify their email
  • Users must be able to recover their account

Admin Requirements

  • Admins must be able to add emails to an approved list of emails to be "message in a bottle" recipients
  • Admins must be able to remove emails to an approved list of emails to be "message in a bottle" recipients
  • Admins must be able to edit emails in a approved list of emails to be "message in a bottle" recipients
  • Admins must be able to create new admin accounts

User Configuration Requirements

  • Users must be able to configure a toggle for using current location information
  • Users must be able to configure a toggle for auto logout on app close
  • Users must be able to configure a toggle for sending warnings if a "message in the bottle" will be sent
  • Users must be able to configure a duration remaining before sending a warning for "message in a bottle"
  • Users must be able to configure a toggle for requiring 2 factor authentication to be able to use the software
  • Users must be able to configure a toggle for requiring personal verification questions to be able to use the software
  • Users must be able to create personal verification questions
  • Users must be able to edit personal verification questions
  • Users must be able to delete personal verification questions

Server Configuration Requirements

  • System Administrators must be able to configure the maximum amount of "messages in bottles" that can be created by a single user
  • System Administrators must be able to configure a mail server to use to send emails from
  • System Administrators must be able to configure an email address that is used to send emails

"Message in a Bottle" Requirements

Creation Requirements

  • Users must be able to create "message in a bottle"
  • Users must be able to cancel "message in a bottle"
  • Users must be able to have multiple "messages in bottles" at the same time

Sending Requirements

  • Users must be able to immediately send "message in a bottle"
  • Users must be able to schedule a time for the "message in a bottle" to be sent.
  • Users must be able to send a "message in a bottle" to multiple different recipients
  • Users must be able to send "message in a bottle" to email addresses
  • Users must be able to select an approved approved email addresses to send a "message in the bottle" to
  • Users must be able to send "message in a bottle" to phone numbers via SMS
  • Users must be able to send "message in a bottle" to other users of the app

Content Requirements

  • Users must be able to change the message in the "message in the bottle"
  • Users must be able add their last known location to the "message in a bottle"

Configuration Requirements

  • Users must be able to create templates for "message in a bottle"
  • Users must be able to update templates for "message in a bottle"
  • Users must be able to delete templates for "message in a bottle"
  • Users must be able to save contacts to send "messages in bottles" to
  • Users must be able to update contacts to send "messages in bottles" to
  • Users must be able to delete contacts to send "messages in bottles" to

Derived Requirements