Project Requirements
Executive Summary
A short overview of the project (one paragraph), including the following: the problem that the product will solve (use your client’s language); value proposition (what will be the essential functionality or your product); who will use your product; how your product will be used.
Project Glossary
-
Attempt An attempt is one data entry recorded from the procedure and assigned to an experiment.
-
Common Attribute - A common attribute is a data column that all subjects have initially. It is pre-defined by the researcher’s data files that the robots create.
-
Custom Attribute - A custom attribute is a user defined data column that does not already exist in the researcher's data files created by the robots.
-
Experiment - An experiment is the collection of subjects and the attempts they have done for a scientific procedure. An example is “Spinal Damage Recovery Experiment (SDRE).”
-
Researcher - A researcher manages the experiments and subjects. They can upload data, add custom attributes, query data, and export their results to an external CSV file.
-
Result - A result is the returned attempts from a search query on some experiments. Results can be exported as an external CSV file.
-
Subject - A subject is an animal used as part of an experiment. Each subject will have a unique ID.
User Stories
US 1.01 - Authentication
As a User, I want to authenticate with my University of Alberta account, so that I can get access to the app's functionalities.
Acceptance Tests
- User can sign in with correct U of A credentials (ualberta.ca email and password)
- User can not sign in with correct email and incorrect password
- User can not sign in with incorrect email
- User can not sign in with a non U of A email
- User can not access app's functionalities without signing in
US 1.02 - View Tasks
As a User, I want to be able to see events that are currently going on for the week, so that I can attend theses events if I choose to.
Acceptance Tests
- User can see a list of all events for the chosen week
- With the selected week, user can not see events that are scheduled for other weeks
- User can see only active events (i.e., open for attendance)
US 1.03 - View Profile
As a User, I want to be able to view my profile, so that I can see my level, points, my history of attending events.
Acceptance Tests
- User can access their profile
- User can see their level, number of points and history of attending events in their profile
- Test with a zero and non-zero level
- Test with a zero and non-zero number of points
- Test with an empty, non-empty and very long (>50 items) event history
MoSCoW
Must Have
- US 1.03 - View Profile
- US 2.89 - Change Password
Should Have
- US 1.23 - Create Account
Could Have
- US 3.21 - Delete Account
Would Like But Won't Get
- US 9.23 - Rainbows and Unicorns
Similar Products
- Digikey
- Search inventory management
- <functionalities, with comments on how they may be used for code or inspiration>
- LORIS
- Neuroimaging data management
- <functionalities, with comments on how they may be used for code or inspiration>
Open-source Projects
- eLabFTW
- Experiment notebook software
- <functionalities, with comments on how they may be used for code or inspiration>
Techincal Resources
Backend: Flask + PostgreSQL
Deployment: Docker + k8s + TravisCI
- Deploy on Kubernetes - Docker Documentation
- Travis CI Documentation
- Setting up Travis CI on an existing Python/Docker project