GithubHelp home page GithubHelp logo

sleep-as-a-symptom's People

Contributors

agretta avatar aklaussen avatar cipayne36 avatar graham-ely avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

sleep-as-a-symptom's Issues

As a researcher, I wish to be able to see a summary of the user health data that’s been entered so that I can get an overall impression of the health of the participants.

Scenario: The researcher goes to the dashboard to view health data and no data has been recorded.
Given: No health data has been recorded;
When: The researcher goes to view the data;
Then: A message is displayed that tells the researcher that the app has not registered any health data and gives a count of linked users.

Scenario: The researcher goes to the dashboard to view health data and data has been recorded.
Given: Several nights of health data have been recorded;
When: The researcher goes to view the data;
Then: The application displays the health data as well as a rudimentary analysis of said data (most common other conditions, average blood pressure of users, etc.)

FitBit Page UI

  • Toggle between linked and unlinked pages
  • unlinked page
  • User Email, password
  • Cancel and Login buttons
  • Whatever FitBit requires?
  • linked page
  • account info
  • unlink button (working)
  • delete data

As a researcher I want to enter a valid access code so that I may sign up and create an account.

Scenario: The researcher inputs a valid access code.
Given: The researcher has been emailed a valid generated access code and is on the signin page;
When: The researched enters a the valid access code into the access code box;
Then: The researcher should be shown his dashboard and he should be logged in.

Scenario: The researcher inputs an invalid access code.
Given: The researcher generated a valid access code;
When: The researched enters an invalid access code;
Then: The researcher should not be logged in and an error message should be displayed.

As a study participant, I wish to have my data saved off my phone so that I don’t need to worry about losing the data.

Scenario: The participant enters health data while connected to the internet.
Given: The study participant is connected to the internet;
When: The study participant inputs valid health data;
Then: The application will sync the entered data with the database.

Scenario: The participant enters health data with no internet connection.
Given: The user is not connected to the internet;
When: The user inputs valid health data;
Then: The application saves the data locally and syncs this data with the database when internet is restored.

Scenario: The participant enters invalid health data while not connected to the internet.
Given: The user is not connected to the internet;
When: The user inputs invalid health data;
Then: The application gives a warning message to correct the error(s) in the data.

As a study participant I want to enter a password so that I may log in.

Scenario: The participant inputs the correct password for their account.
Given: The participant has created an account with a valid password;
When: The participant enters their valid password;
Then: The participant should be logged in and the dashboard should be displayed.

Scenario: The participant inputs an incorrect password for their account.
Given: The participant has created an account with a valid password;
When: The participant enters an invalid password;
Then: The participant should not be logged in and an error message should be displayed.

As a study participant I want to export my data from my dashboard so that I may have a record of it.

Scenario: The participant successfully exports their data.
Given: A participant has collected enough data to export, and is on the dashboard page;
When: The participant selects export data;
Then: The data should be saved as a .csv file and a message notifying the user the data was exported successfully should be displayed.

Scenario: The participant has no data to export.
Given: A research participant has no data to export, and is on the dashboard page;
When: The participant selects export data;
Then: An error message should be displayed and no data should be exported.

As a researcher, I want to download the data I’ve collected so I can do my research.

Scenario: The researcher wants to download data and there is data to download.
Given: The researcher’s file system can accept downloads;
When: The researcher is in the export data page and taps the “Export as CSV” button;
Then: the de-identified data is downloaded to filesystem in CSV format.

Scenario: The researcher wants to download data, but there is no data to download.
Given: There is no data for download
When: The researcher is in the export data page and taps the “Export as CSV” button;
Then: An error message is displayed explaining that no data has been collected.

As a study participant I want to have a secure password so that my data is secure.

Scenario: An unregistered study participant inputs a lengthy enough password.
Given: The participant is on the registration page of the app and wishes to create an account;
When: The participant enters a password that passes the security threshold in length;
Then: The page allows the account to be created if the other fields are valid.

Scenario: An unregistered study participant inputs a short or otherwise insecure password.
Given: The participant is on the registration page of the app and wishes to create an account;
When: The participant inputs a password that does not pass the security threshold in length;
Then: The interface displays an error message notifying the participant about password length and does not allow the account to be created, if the create account button is clicked.

As a researcher, I wish to manage other researchers access to the user data so that only valid researchers can be able to extract and use study participant data.

Scenario: The researcher inputs an invalid email address into the list of valid emails for researchers.
Given: The researcher is in their admin account and in the application dashboard, and wishes to add another researcher to the project;
When: The researcher types an invalid email address into an add researcher box;
Then: The interface displays an error message stating that the email address should be valid and noting the issue. The add researcher button should not add the email to the admin list.

Scenario: The researcher inputs an email address that is already in use into the list of valid emails for the researchers.
Given: The researcher is in their admin account and in the application dashboard, and wishes to add another researcher to the project;
When: The researcher types an email address that is already in use into an add researcher box;
Then: The interface displays an error message stating that the email address is already in use and the add researcher button should not add the email to the admin list.

Scenario: The researcher inputs an valid email address into the list of valid emails for the researchers.
Given: The researcher is in their admin account and in the application dashboard, and wishes to add another researcher to the project;
When: The researcher adds a valid email into the admin list into an add researcher box;
Then: The interface allows the add researcher button to add the new researcher to the admin  list and sends an email with an access code to the email provided.

Scenario: A researcher removes another researcher from the admin list.
Given: The researcher is in their admin account and in the application dashboard, and wishes to remove another researcher from the project;
When: The researcher deletes an email from the researcher admin list;
Then: The researcher whose account is linked to that email should no longer have admin access to data or analysis tools in the app.

As a study participant, I want to be able to remove data that I have previously entered so that I can ensure there is no false or irrelevant information in my data for research purposes.

Scenario: The participant wants to delete data from a given field.
Given: The field the participant wishes to delete is not a required field;
When: The participant changes it to blank;
Then: The system updates to no longer include that specific data point.

Scenario: The participant does not wish to delete data after all.
Given: The participant does not wish to delete their data;
When: The participant accidentally presses the delete button;
Then: The app asks them if they are sure they wish to delete said data and informs them of the implications of such an action (How it will affect the study).

As a study participant, I want to link my FitBit account so that I can share my sleep data with researchers.

Scenario: The study participant inputs valid FitBit credentials and links their account.
Given: The participant has valid FitBit credentials and is on the link device page;
When: The participant inputs valid credentials;
Then: The FitBit account is authenticated, data is loaded and a success message is then displayed on the screen.

Scenario: The study participant inputs invalid FitBit credentials.
Given: The participant's FitBit credentials are not correct when they input them into the link device page;
When: The participant inputs credentials
Then: The FitBit account is not linked and an error message is displayed on the screen asking them to try again or go to the FitBit website to reset their password.

Scenario: The study participant inputs valid FitBit credentials, but there's a problem with linking the account.
Given: The participant's FitBit credentials are correct, but API returns an error for retrieving data;
When: the participant is on the link device page and inputs their credentials;
Then: The data is not loaded and an appropriate error message is displayed on the screen referencing the API error.

Scenario: The study participant wants to add a second FitBit account.
Given: The participant already has a FitBit account linked;
When: The participant is on the link device page and attempts to link another;
Then: A message is displayed on the screen telling the user only one FitBit account is allowed per user account.

As a study participant, I want to be able to view the health data I’ve entered so that I can review it and update it if necessary.

Scenario: The participant goes to the screen to view health data and no data has been recorded.
Given: No health data has been recorded;
When: The participant goes to view the sleep data;
Then: The application tells the participant that the app has not registered any health data and gives them the option to log it.

Scenario: The participant goes to the screen to view health data and data has been recorded.
Given: Some or all health data has been recorded;
When: The participant goes to view the sleep data;
Then: The application displays the health data and gives the option to update data and add missing data.

As a study participant, I want to unlink my FitBit account so that I can stop sharing data with researchers.

Scenario: The participant wants to revoke data access and unlink their account.
Given: The participant already has a linked FitBit account, and is on the link fitbit account page;
When: The participant taps "unlink account" and the subsequent confirmation message;
Then: The FitBit authentication information is deleted and a success message displays on the screen to notify the user.

Scenario: The participant wants to unlink their account but has no account already.
Given: The participant does not have a FitBit account currently linked and is on the link FitBit account page;
When: The participant taps the inactive (grayed out and unusable) "unlink" button;
Then: An error message is displayed on the screen telling the user they do not currently have an account linked.

Scenario: The participant wants to unlink their account but has no internet connection.
Given: The participant has a FitBit account but does not have internet connection
When: The participant is on the link fitbit account page and taps the inactive "unlink" button;
Then: An error message is displayed on the screen telling the user they do not currently an internet connection.

New Registration pages views

Admin page:

  • First, last
  • School Name
  • Email address (filtered to .edu .gov, .org)
  • work place address
  • password stuff

Participant page:

  • First, last
  • ZIp
  • Email address
  • password stuff

As a study participant, I want to delete my account so that I can be sure I’ve stopped sharing data with researchers.

Scenario: The study participant actually wants to delete their entire account.
Given: The study participant has tapped the “Delete Account” button;
When: The study participant confirms their intent to delete their account permanently;
Then: their account is deleted, a success message is shown on the screen, and the participant is emailed a confirmation.

Scenario: The study participant wants to stop sharing their data or unlink their FitBit account.
Given: The study participant has tapped the "Delete Account" button;
When: The study participant indicates at  the confirmation screen that s/he/they just want to stop sharing their FitBit data;
Then: the participant is redirected to the "unlink FitBit" screen.

As a researcher, I want to receive an access code so that I may create an admin account.

Scenario: The researcher successfully adds another researcher to the admin list.
Given: Another researcher has added the new researcher’s email to the admin list;
When: The other researcher successfully adds the email to the admin list;
Then: an email should be sent to this email containing an access code for use in signing in.

Scenario: The researcher successfully adds another researcher to the admin list, but the researcher deletes or does not receive the email.
Given: Another researcher has added the new researcher’s email to the admin list, and this user wants to create an admin account;
When: The new researcher does not have the email containing the access code, so they click a request access code button;
Then: an email should be sent to this email containing an access code for use in signing in if they are on the admin list.

Header Bar

Header bar

  • Changing Title based on page
  • History back button

As a study participant, I want to input my health data into the app so that I can complete the study.

Scenario: The participant wants to input their health information.
Given: The participant knows their health information (cholesterol levels, blood pressure, pre-existing conditions etc.) and are on the health data page under dashboard;
When: They input valid data;
Then: That data is added to their account and saved to be accessed later.

Scenario: The participant doesn’t know their health information.
Given: The participant does not know a particular data point;
When: They leave the corresponding data box blank;
Then: They are still allowed to continue but are reminded (daily) to come back to fill it in as soon as possible.

Scenario: The participant enters invalid data.
Given: The data type entered is not compatible with the particular box (putting a word where a number belongs or putting numbers in the wrong format for example);
When: The participant tries to enter the invalid information;
Then: The system does not accept it and directs the participant to try again.

Inputs:
Blood Glucose
Blood Cholesterol
Blood Pressure
Body Weight
% Body fat
BMI(or height and then the app can calculate it using height and weight)
Waist circumference

As a researcher, I wish to see insights about the user sleep data in the application so that I can get an overall idea of trends in the data before I do my analysis.

Scenario: The researcher goes to the screen to view sleep data and no data has been recorded.
Given: No sleep data has been recorded;
When: The researcher goes to view the sleep data;
Then: The application tells the researcher that the app has not registered any sleep data and gives a count of linked users.

Scenario: The researcher goes to the screen to view sleep data and data has been recorded.
Given: Several nights of sleep data has been recorded;
When: The researcher goes to view the data;
Then: The application displays the sleep data as well as a rudimentary analysis of said data (average length of sleep between participants, average heart rate during sleep etc).

As a study participant, I want to be able to view a running summary of my sleep data so that I can see how my sleep habits are perceived by the system.

Scenario: The participant goes to the screen to view sleep data and data has been recorded.
Given: At least one night of sleep has been recorded;
When: The participant is on the dashboard and goes to view their data;
Then: The system displays the participants sleep data in the form of a graph.

Scenario: The participant goes to the screen to view sleep data but no data has been recorded.
Given: No sleep data has been recorded
When: They view it
Then: It tells them that the app has not registered any sleep and they are given the option to enter the data in manually if this is in error

Scenario: Participant has been participating in the study for several nights
Given: several nights of sleep data has been recorded
When: They view the data
Then: It displays their sleep data as well as a rudimentary analysis of said data (average length of sleep, average heart rate during sleep etc.)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.