-
Notifications
You must be signed in to change notification settings - Fork 3
1. Spring 2018
- Fill Sprint Backlog
- Assign features to persons
- Assigned persons discuss design
- Feature branch is made
- Feature prototype is shown to group
- Implementation and testing of feature
- Merge and testing of feature
- Feature branch is closed
- First Monday of each Sprint is a Sprint Planning meeting.
- Any other Monday is a Backlog grooming meeting.
- Daily stand ups will be held at 9pm every night on Discord.
| Week | Progress | Features (Assigned To) |
|---|---|---|
| 1 | Proposal Presentation | -- |
| 2 | Fill Feature Backlog | -- |
| 3-4 | Sprint 1 | 1. Refactor Flash Cards, Group Widget, & User Account (Michelle) 2. Refactor Server, Whiteboard, Main Window (David) 3. Refactor Flash Cards (Juan) 4. Refactor Account (Garret) 5. Refactor Group & Whiteboard (Fuller) |
| 5-6 | Sprint 2 | AS2. Password Encryption (Garret and Juan) AS3. Recover Username (Juan and Michelle) AS4. Create Account Security Questions (Garret, Juan, and Michelle) HP1. List of recent groups (David and Fuller) HP2. List of favorite groups (David and Fuller) RF1. User Account Refactoring (Michelle) Bug1. Look into whiteboard server crash (Fuller) RF2. Finish flashcards & testing (Juan and Michelle) |
| 7-8 | Sprint 3 | |
| 9-10 | Sprint 4 | |
| 11-12 | Sprint 5 | |
| 13-14 | Sprint 6 | |
| 15-16 | Sprint 7 | |
| 17 | Final Presentation | -- |
Account Security
AS1. Second Database [DONE]
Rationale: Account information should be separate from everything else.
Points: 1
Acceptance Criteria:
- All account functions work with second database
AS2. Password Encryption [DONE]
Rationale: As a user, my password should not be stored like equifax.
Points: 3
Acceptance Criteria:
- Passwords are encrypted with login
- Passwords are encrypted with create account
- Password hashes are successfully compared
AS3. Recover Username [DONE]
Rationale: As a user, I should be able to recover my username if I forget it
Points: 1
Acceptance Criteria:
- Upon clicking recover username, user receives email with their username.
AS4. Create Account Security Questions [DONE]
Rationale: As a user, I should have three security questions guarding my password recovery.
Points: 5
Acceptance Criteria:
- Question and answer columns in user account database
- UI has to show question selection and button to submit answer
- Answer is hashed
- Three security questions must be present
- Several pre-set, other option for custom question
AS5. Reset Password [DONE]
Rationale: As a user, I should be able to reset my password with two step verification.
Points: 3
Acceptance Criteria:
-
Upon entering username and email, a random security question is shown
-
Answering the security question correctly will send an email with a code
-
Upon entering code into GUI, the code is compared and verified
-
If successful, user can reset password
-
Answering the security question correctly (5 tries) will send an email with a code
-
After 5 tries the user is somehow prevented from answering for a certain amount of time
AS6. Email Spam [WONT BE DONE]
Rationale: As an email, I should not show up as spam
Points: 2
Acceptance Criteria:
- Create an SPF (sender policy framework) record
- Email does not show up in spam
- Need domain
AS7. Bug Fixes [IN SPRINT 4]
Rationale: As a bug, I should be eliminated before reproducing into more bugs
Points: 2
Acceptance Criteria:
- Account Security Questions put on same page/tab/window/thing
- Custom questions don't let you go back to default ones
- Add hyperlinks to sign in page
- Test the recover username thing again (got an X)
- Add popups everywhere
AS7. Login/Security Answer Timeouts [IN SPRINT 3/4]
Rationale: As a hacker, I should be locked out after multiple failed attempts at logging in/answering security questions. That will teach me to make my own flashcards.
Points: 5
Acceptance Criteria:
- After 5 incorrect tries the user is somehow prevented from answering for a certain amount of time
Home Page
HP1. List of recent groups [DONE]
Rationale: As a user, I should have easy access to my most recent groups.
Points: 5
Acceptance Criteria:
- Recent groups are stored in database
- Recent groups are passed upon logging in
- Recent groups are displayed on the home page
- Clicking a recent group joins the group
- Show number in group
HP2. List of favorite groups [DONE]
Rationale: As a user, I should have easy access to my favoritest groups.
Points: 5
Acceptance Criteria:
- Favorite button is on group page
- Favorites are stored in database
- Favorites sent upon logging in
- Favorites displayed on homepage, and clicking joins the group
- Button to remove a group from favorites list
- Show number in group
HP3. Friends List [IN SPRINT 3/4]
Rationale: As a user, I should be able to easily access and see other users I want to contact
Points: 8
Acceptance Criteria:
- UI widget for friends list
- Show myself as offline/online/away
- Perceived status is stored while online
- User table has list of friends
- Online/offline/away status is shown for each friend
- Button to search user database, results have button to add/remove from friends list
- Status is shown AFTER the user is added to the friends list
HP4. Block List [IN SPRINT 4]
Rationale: As a user, I should be able to prevent others from contacting me
Points: 3
Acceptance Criteria:
- UI widget for block list
- If someone is on my block list, they can't see my status or personal message me
Personal Messaging
PM1. Personal Messaging
Rationale: As a user, I should be able to initiate contact with just one other user.
Points:
Acceptance Criteria:
- Users are able to send and receive a message to another user
- UI popup appears for the chat
- Toolbar tabs are put in with popup messages on the bottom per user chat message.
- Friend list search results have buttons to message the user
- Blocked users do not have their messages received
Flashcard Decks
DF1. Deck main page [IN SPRINT 3]
Rationale: As a group-member, I should be able to see the entire deck at once.
Points: 3
Acceptance Criteria:
- All cards are shown in one widget
- Scroll-able list-view
- Clicking the item takes you to the card
- Buttons to switch in-between single card/list view of deck
Voice
V1. Sending/receiving UDP messages [IN SPRINT 4]
Rationale:
Points: 3
Acceptance Criteria:
- All cards are shown in one widget
- Scroll-able list-view
- Clicking the item takes you to the card
- Buttons to switch in-between single card/list view of deck
V2. Sending/playing an audio file [IN SPRINT 4]
Rationale: As a group-member, I should be able to see the entire deck at once.
Points: 3
Acceptance Criteria:
- All cards are shown in one widget
- Scroll-able list-view
- Clicking the item takes you to the card
- Buttons to switch in-between single card/list view of deck
V3. Send microphone audio
Rationale: As a group-member, I should be able to see the entire deck at once.
Points: 3
Acceptance Criteria:
- All cards are shown in one widget
- Scroll-able list-view
- Clicking the item takes you to the card
- Buttons to switch in-between single card/list view of deck
V4. Group Users separate sections (In Voice/Not In Voice)
Rationale: As a group-member, I should be able to see the entire deck at once.
Points: 3
Acceptance Criteria:
- All cards are shown in one widget
- Scroll-able list-view
- Clicking the item takes you to the card
- Buttons to switch in-between single card/list view of deck
Rationale: As a group-member, I should be able to communicate over voice-chat with other group-members.
Points:
Acceptance Criteria:
Rationale: As a developer, I should be able to easily implement new whiteboard features such as undo, line-specific erasing.
Points:
Acceptance Criteria:
Rationale: As a group-member, I should be able to make separate decks of flashcards for my group.
Points:
Acceptance Criteria:
Rationale: As a user, I should be able to search for specific tags for groups I may want to join. As a group-member, I should be able to add tags onto my current group.
Points:
Acceptance Criteria:
Rationale: As a group-member, I should have specific privileges to control specific areas of the group.
Points:
Acceptance Criteria:
Settings
S1. Application Settings
Rationale: As a user, I should have the ability to change settings locally (or maybe store this in DB?).
Points: 3
Acceptance Criteria:
- Change timezone
- Remember username
- Full-screen or windowed
- Window notifications
S2. User Settings
Rationale: As a user, I should have consistent settings across usage of computers
Points: 3
Acceptance Criteria:
- Change email
- Change password
- Automatically join last connected group
Voice
V1. Think about it
Rationale: As a group-member, I should be able to communicate over voice-chat with other group-members.
Points: ??
Acceptance Criteria:
Rationale: As a potential user, I should be able to download a working executable off the internet.
Points:
Acceptance Criteria:
StudyGroup
Garret Kelley - Fuller Le - Juan Mejia - David Parker - Michelle Salomon
Fresno State