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