Requirements 2 - CBTYoung/Documentation GitHub Wiki

Functional Requirements

1. Guest:

  1. The System must support adding a new Guest. A Guest doesn’t have a Therapist that can update their modules.
  2. The System must support connecting a Guest to a Therapist. After the connection is made, the Guest becomes a Patient of that Therapist, and the Guest’s progress is transferred to the Therapist.
  3. The System must support logging in an existing Guest. Before the Guest’s local history will be deleted, they will be warned.
  4. The System will save all data the Guest inputs locally on the phone.

2. Fill Reports:

  1. The System must support allowing a user to fill as many reports as they would like and will save the reports.
  2. The System will save report drafts of the user.
  3. When filling a report:
  1. The current date will be automatically chosen. The user will be able to change it.
  2. The System will let the user describe what happened during the event. This is the only mandatory part to fill. If needed the Therapist will allow a list of situations that may help the user to explain himself, e.g. School, Social, Parents, etc.
  3. The System will let the user describe their emotion during the event in 3 different ways: Typing a few words, picking an Emoji or picking a body part.
  4. The System will let the user input their thoughts during the event as text.
  5. The System will let the user input their response during the event as text.

3. View Reports:

  1. The System will allow the user to view a calendar. The calendar will have marks on the days on which the user made a report.
  2. When choosing a specific day, the system will show the user the reports he filled on that day.
  3. The system will let the user watch his previous reports in a list that will be ordered by date.
  4. The system will allow the user to view a specific report in extensive detail.
  5. When looking at reports, the user will be able to edit and remove them.
  6. The system will save all achievements achieved by the user.
  7. The achievements will be granted to the user according to streaks and amounts of reports filled.

4. Patient:

  1. A Guest that logged into the system becomes a patient and will be able to use all 1-3 functions
  2. The Patient will be able to see their details and their Therapist’s details.
  3. The data that the Patient will fill will be saved on an external server.
  4. The Patient can write their Automatic Thoughts at any time, only if their Therapist opens that option for them.
  5. The Patient can write their Automatic Thoughts Response at any time, only if their Therapist opens that option for them.
  6. The Patient can take a photo of the report to send to their Therapist.

5. Therapist:

  1. A user can register as a Therapist.
  2. A user can login as a Therapist, only if they have registered before.
  3. The Therapist can add a new client by registering their information and connecting to them.
  4. A Therapist can remove a Patient, at which case the Patient becomes a Guest.
  5. A Therapist can get a summary of a specific Patient and his activity last week and will be saved as file and sent to their mail.
  6. The Therapist will have access to the patient reports and further data.
  7. The Therapist can change the modules unlocked for their Patient.

6. System:

  1. The system will allow scheduled notifications to use the app.