---
# System prepended metadata

title: Android App Implementation Plan
tags: [Implementation]

---

---
tags: Implementation
---

# Android App Implementation Plan


---


GIT
- Jeder macht einen personal branch auf dem man Features entwickelt
- Wenn die Features fertig sind mergt man sie auf den master branch

### Additional

TODO: Niko
- [x] Tabbar etc
- [x] Home Screen
- [x] Companion 

TODO:Ela 
- [x] Help screen
- [x] Notification

TODO: Noah
- [x] Entry stuff
- [x] Questionnaire
- [x] Mood Survey
- [x] Settings Screen

### Data

- [x] /FR-2-1-1/ The history of consent forms is stored on the server
- [ ] /FR-2-1-2/ Apps should always have updated information, but shall not update the consent forms that the user already agreed to
- [x] /FR-2-1-3/ User data will be available to the administrator in a CSV data file (every participant in a separate row and participants names shouldn’t be in the file but identifiers instead)
- [ ] /FR-2-1-4/ Unanswered notifications shall be rows inside the data file which don’t contain data and they shall be marked with a voluntary flag

### Other
- [x] /FR-1-2-2/ The app retrieves settings from the server after a new user logs in for the first time, or through a push notification from the server
    - We request data whenever we need it so it's always up to date

### Entry & Account

TODO:Noah

- [x] User sees a calendar on the home screen
- [x] User can edit their nickname
- [x] User can upload profile photo
- [x] /FR-1-1-1/ The user can create a new moodey account using a valid e-mail-address via the app
- [x] /FR-1-1-2/ After creating an account via app, the user will be asked to fill-out a consent form and some questionnaires
    - [x] Questionnaire Sequence is completable and results are uploaded
    - [x] Questionnaire Sequence is started after entering logged in state with questionnaires unanswered
    - [x] Questionnaire Sequence contains all required questions
    - [x] consentForm is displayed and result is stored in server
    - [ ] Questionnaire Sequence start respects displayDelayAfterAccountCreationInDays
- [x] /FR-1-2-1/ The user can log-in to their existing account with their created credentials
- [x] /FR-1-1-3/ The user can change their account’s password
- [x] /FR-1-1-4/ The user can delete their account
- [x] /FR-1-2-3/ The user can log out of their account

### Survey

...TODO:Noah

- [x] Companions selection question - Can search companions by nickname that user has given them
- [x] /FR-1-6-1/ Surveys allow the user to record their mood on a five-point scale in one dimension
- [x] /FR-1-6-2/ A label is located at each extreme of each scale of the surveys
- [ ] /FR-1-6-3/ At the left end of the mood scale of the surveys it says ‘Very negative’ and on the right ‘Very positive’
- [x] /FR-1-6-4/ Analogous to mood, stress will also be recorded on a five-point scale in one dimension
- [x] /FR-1-6-5/ On the left end of the stress scale of the surveys it says ‘Very relaxed’ and on the right ‘Very stressed’
- [x] /FR-1-6-6/ The user may specify the companions that they interacted with recently in every survey
- [x] /FR-1-6-7/ The user may specify in a survey, that they haven’t interacted with any companions recently
- [x] /FR-1-6-8/ The user can use a searchable list of people to specify that they recently interacted with the specified person when answering a survey (display name and display picture)
- [x] /FR-1-6-9/ The search of companion in a survey can be done by both the nickname and the actual name of the person
- [x] /FR-1-6-10/ The user may indicate in a survey that they have recently interacted with a companion by tapping on their display name/picture
- [x] /FR-1-6-11/ Companions that have been selected in a survey to specify interactions, can also be deselected
- [x] /FR-1-6-12/ The user has to tap a button to confirm the selection of recent interacted companions in a survey
- [x] /FR-1-6-13/ When answering the first survey of the day, or when answering a survey which was started by entering the app manually, one extra screen – special situations - is displayed at the end of the survey
- [x] /FR-1-6-14/ In the extra screen ’special situations’ in a survey, the user may select from a set of special situations, and whether the situation is positive or negative
- [x] /FR-1-6-15/ Special situations can be: ‘Work/Study’, ‘Family, ‘Partner related’, ‘Health’, ‘Other’
- [x] /FR-1-6-16/ In the extra screen ’special situations’, the user may also specify that no special situations have occurred
- [x] /FR-1-6-17/ When the user starts a mood survey, location services (GPS) will turn on briefly for the user and for and all of their companions
- [x] /FR-1-6-18/ The distance between the user and their companions will be recorded quickly when the GPS is turned on at the start of a mood survey
- [x] /FR-1-6-19/ Survey data is marked with a time-stamp
- [x] /FR-1-6-20/ Survey data is marked with a flag, indicating whether the survey was triggered by a reminder notification or not

### Help screen

TODO:Ela

- [x] /FR-1-3-1/ The user can access a built-in help-tool in the app, that provides information about the functionalities of the system

### Companion screen and interactions

...TODO:Niko


- [x] Change relationship (at most once)
- [x] Give companions nicknames (should only be stored locally according to Project Description)
- [ ] /FR-1-4-1/ The user can invite people via app to join moodey by e-mail
- [x] /FR-1-4-2/ The user can share a ‘unique user code’ so other users can add them as a partner, friend, family member, coworker, roommate or other
- [x] /FR-1-4-3/ Sending an app-invite forces the user to label the ‘relationship’ they have with the invited person
- [x] /FR-1-4-4/ Accepting an invite forces the user to label the ‘relationship’ they have with the inviting person

### Notifications

...TODO:Ela

- [ ] /FR-1-5-1/ The app reminds the user randomly, multiple times a day, to start a survey
- [ ] /FR-1-5-2/ The frequency and time range for the notifications are obtained from the server
- [x] /FR-1-5-3/ The user can press a button in the app to start a survey
- [ ] /FR-1-5-4/ Survey data is locally recorded and eventually synchronized to the server
- [x] /FR-1-5-5/ The user can’t add, edit, or erase their collected mood data from the past

### Visualization

- [x] /FR-1-7-1/ The app allows the user to visualize their mood and stress changes during the last day or during a user-specified time range
- [x] /FR-1-7-2/ The in-app data visualization uses a graph with two axes to visualize user data
- [x] /FR-1-7-3/ The y-axis of the in-app data visualization represents mood/stress level from 1 to 5 and the x-axis represents time
- [ ] /FR-1-7-5/ In the case of a single day visualization in the app, the units of this x-axis shall be hours of the day
- [ ] /FR-1-7-6/ In the case of a different time range than one day of the in-app data visualization, the units of the x-axis may also be days, weeks or months, depending on the length of range the user chooses
- [x] /FR-1-7-7/ The user can turn on and off the visualization of the mood and stress if desired
- [x] /FR-1-7-8/ After the experimental cycle has passed, the user may also view their companions’ data
- [x] /FR-1-7-9/ The user will be notified once their companions’ data is available
- [x] /FR-1-7-10/ The user can turn the visibility of their companions’ data off or on

### WebApp

- [ ] /FR-2-2-1/ The administrator can log into the web interface using the administrator password
- [ ] /FR-2-2-2/ The administrator can modify the administrator password
- [ ] /FR-2-2-3/ The administrator can modify system settings dynamically
- [ ] /FR-2-2-4/ The administrator can modify notification frequency
- [ ] /FR-2-2-5/ The administrator can modify the time range for when notifications are sent
- [ ] /FR-2-2-6/ The administrator can select the time range of an experimental cycle
- [ ] /FR-2-2-7/ The administrator can modify the consent form text
- [ ] /FR-2-2-8/ The administrator can download all available user data
- [ ] /FR-2-2-9/ The administrator can download a subset of available user data (e.g. time range) • /FR-2-2-10/ The administrator can archive a subset of the user data