Skip to content

1. Spring 2018

ParkerD559 edited this page Mar 12, 2018 · 29 revisions

Navigation

Sprint Workflow

  1. Fill Sprint Backlog
  2. Assign features to persons
  3. Assigned persons discuss design
  4. Feature branch is made
  5. Feature prototype is shown to group
  6. Implementation and testing of feature
  7. Merge and testing of feature
  8. 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.

Scrum Schedule

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 --

Feature Backlog

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

Voice

Rationale: As a group-member, I should be able to communicate over voice-chat with other group-members.

Points:

Acceptance Criteria:

Whiteboard Layers

Rationale: As a developer, I should be able to easily implement new whiteboard features such as undo, line-specific erasing.

Points:

Acceptance Criteria:

Flashcard Decks

Rationale: As a group-member, I should be able to make separate decks of flashcards for my group.

Points:

Acceptance Criteria:

Tagging/Searching

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:

Group Roles

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:


Website/Deployment

Rationale: As a potential user, I should be able to download a working executable off the internet.

Points:

Acceptance Criteria:

Clone this wiki locally