Requirements Specification - HomeDivision/Choreless GitHub Wiki
MVP Requirements
Login Feature (Complete)
- User is able to log into the service using an email and password that matches the login credentials of an existing account
- User is able to reset their password through an online system using the email address associated with their account
Registration Feature(Complete)
- User is able to register for a new account with the service which requires an email address, nickname, and password
- The email address must be a valid email address format
- The email address that the user inputs must not already be associated with another account
- The nickname must be alphanumeric characters or spaces
- The password must be between 6 and 20 alphanumeric characters
- The password must match the retype password field to successfully create an account
- Button to complete registration process that validates and verifies the information before submission
- User is presented with the option to create a group or join an existing group using a Group ID
Create a Group Feature (Complete)
- User is able to create a new group
- User is able to input a group name
- Group name must be alphanumeric characters or spaces
- System must generate a unique Group ID for each group
- User is able to input a group name
- Group creator is able to send an email to invite others to this group
- This email contains the generated Group ID, group name, and a link to the login/register page
- All invited email addresses must be a valid email address format
- Group creator is able to add new chores to their group (refer to add chores feature for more details)
- Default set of chores can be added to the group’s initial chore list
- Creator can opt out to not have default set of chores
- Default set of chores can be added to the group’s initial chore list
Join a Group Feature (Complete)
- After completing registration, user is able to input a Group ID which then adds their account to the group with a matching Group ID
- If Group ID does not match any existing Group ID, user is prompted to try again
Edit Group and Group Members Feature (Complete)
- All users should be able to remove users
- All users should be able to invite new members to the group
Add Chores Feature (Completion)
- Each chore name must be unique
- Each chore name must contain only alphanumeric characters or spaces
- All users are able to create a new chore and add it to the group
- All users are able to remove existing chores within their group
- All users can modify existing chore properties (name, description, frequency) (Frequency does not make sense for our MVP, so this is complete)
Add a Chore Card (Complete)
- All users can add a chore card or edit existing chore cards (Editing chore cards does not make sense for our MVP, so this is complete)
- Each chore card contains: due date, date assigned, assigned chore, member assigned, completion status
- To create a chore card, a user needs to input an assigned chore (taken from the group’s chore list)
- The due date, date assigned, member assigned, and completion status fields will be updated when the chore card is assigned on the weekly calendar
Weekly Calendar (Complete)
- All unassigned chore cards within a group are visible to users of that group.
- Users can only assign chore cards to themselves
- As chore cards are assigned, the list of available chore cards is updated for all users of that group
- Users can choose which day they want to assign a chore card
- Each chore can be marked as complete through a pop-up menu once clicked on
- A chore card cannot be marked as completed if it is set to a future day of the week
User Settings (Complete)
- User should be able to change their nickname to another valid nickname
- User should be able to change their email to another valid email address
- User should be able to change their password to another valid password
"Nice to have" Requirements
Landing Page
- Explains what this application does and key features of the application.
- Includes a summary of the problem statement and mission statement
- Button that links to registration page for new users
- Text hyperlink to login page for existing users
Add Chores Feature
- The platform will provide a set of commonly done chores that the group members can quickly add to their group chore list(ex: clean dishes, sweep floors)
Add a Chore Card
- Users can assign a chore type field which determines if it is a monthly or weekly chore
- A monthly chore is not worth any points, and plays no role in the weekly chore goal
Weekly Calendar
- User has a progress bar that displays the user's current weekly chore points, counted in integers
- Adding a chore card to the week will update the user’s potential weekly chore points shown in the progress bar
- User can view their progress towards their personal weekly chore point goal
- A completed chore increases the user’s weekly chore points
Monthly Dashboard
- All unassigned chore cards within a group are visible to users of that group
- Users can assign chore cards to only themselves for only the current month
- As chore cards are assigned, the list of available chores is updated for all users of that group
- Each chore card can be marked as complete through a pop-up menu once clicked on
User Settings (Complete)
- User should be able to change their own color to represent themselves in their group
Edit Group and Group Members Feature
- All users can edit each other’s chore goals
- All users can set the same chore goal for all group members at once
- Group-wide chore goals will overwrite all individual user goals
- All users have the option to generate a new Group ID which will replace the old Group ID