User Stories - thkirby/Group10 GitHub Wiki

User Story 1 : Log in

The user wants to be able to create a username and register it in the system using a username and password.

Priority: High

Risk: High

Core Feature

Story Points: 4

Sub Stories:

  • The user wants to be able to provide a name and email address to create a secure account.
  • The user wants to be able to create a strong password for their account with a minimum of 8 characters for better security.

Task Breakdown:

  • create landing page with login form
  • create field for username and password on login form
  • provide buttons for login or registration if user needs to create account
  • implement registration and user authentication forms
  • create fields for username, email, password, and password confirmation on registration form
  • check for proper email, adequate password during sign up
  • check for unique user and email upon creation using database
  • save form token for POST
  • when user clicks sign up button redirect to landing page and alert user that they may now login
  • upon user signup a user ID is created and added to the database
  • the username and email are associated with the user ID
  • on landing page, when user enters their account information and clicks log in they are redirected to their profile
  • on profile page, create an edit profile button that redirects to profile editing form
  • on profile editing form, create fields that allow the user to provide more personal information and change their account information
  • on profile page, create sections/tabs for posts, about (user), friends, and photos

Acceptance Testing

  • Step 1: The user goes to the fakebook web application page
  • Step 2: The user clicks create new account and attempts to create account with invalid username, then invalid email, and password
  • Step 3: The user enters valid information and then proceeds to fail at creating a new account with the same information
  • Step 4: The user fails to login in with invalid information
  • Step 5: The user logs in with correct information and enters the site

User Story 2 : Compose Timeline

The user wants to be able to compose, edit, and post a status on their timeline

Priority: High

Risk: Low

Core Feature

Story Points: 5

Sub Stories:

  • The user clicks an add new status button. They then compose a status with a title and press a post button, putting the post on their timeline
  • The user sees an error in their posted status, presses the edit button, and changes the content of the status
  • The user presses a delete button on an unwanted post removing that status from their timeline

Task Breakdown:

  • The user presses the add button to add a post.
  • The compose post functions are called to get the information that the user wants to post.
  • The users' associated timeline classes are updated (meaning the user and the user's followers).
  • The user clicks edit on a post.
  • Some functions in the post class are called to see what information the user would like to change and the respective information is changed and sent to the class.
  • The user clicks on a button to open the timeline and a display function is called that displays all relevant posts in the user's timeline class based on their following list.

Acceptance Testing

  • Step 1: The user clicks on add post, types in the prompt, and adds the post to their timeline
  • Step 2: Another user who is a friend to the original users looks at their timeline and sees the created post
  • Step 3: The user deletes the post by pressing deleting the post
  • Step 4: The users friends can no longer see the posts on their timeline

User Story 3 : Friend Requests

The user wants to be able to add other users as friends to their profile.

Priority: Medium

Risk: Medium

Core Feature

Story Points: 3

Sub Stories:

  • The user wants to be able to send friend requests to other users.
  • The user wants to be able to receive friend requests to other users.
  • The user wants to be able to block friend requests from other users.

Task Breakdown:

  • The user presses the follow button.
  • The ID of the followed user is sent to the database.
  • Once the database validates the user ID, the followed is added to the follower list.
  • The users follower page and button is updated
  • The user presses unfollow and that request is sent to the database and the follower list is updated.
  • The user presses block and the blocked persons ID is added to a field

Acceptance Testing

  • Step 1: The user clicks on the friend requests button
  • Step 2: They see a friend request sent to them and click accept
  • Step 3: They go to their friends list and sees the profile of the new friend
  • Step 4: The user finds a profile they would like to friend and hit send friend request
  • Step 5: The other user sees the request in their pending friend request and rejects it
  • Step 6: The user sees that the person rejected the friend request.

User Story 4 : Like, Comment, and Share

The user would like to be able to interact with my friends and family.

Priority: High

Risk: High

Core Feature

Story Points: 5

Sub Stories:

  • The user should be able to share the status that I see on my timeline.
  • The user should be able to like the status that my friends post.
  • The user should be able to comment on the status that my friends post.

Task Breakdown:

  • The user presses the like button.
  • The post ID is sent to the database.
  • The Boolean flag for the like value for the post ID in question is reversed.
  • The like button sprite is updated to match the value of the Boolean.
  • The like count count is updated.
  • The user presses the comment button.
  • The post ID is sent to the database.
  • The comment is made and added to the database with the associated post ID.
  • The user presses delete comment to retrieve the comment from the database and have it removed.
  • The user can press edit comment to retrieve the comment from the database to make changes to it.
  • The user presses the share button.
  • The post ID and profile ID are sent to the database and displayed on their timeline.
  • If the user wants to remove the post, they press the remove button.
  • The prompt is sent to the database, where the post ID is pulled and the post is removed.

Acceptance Testing

  • Step 1: The user likes, comments, and shares a post
  • Step 2: The user cancels those actions