User Stories - kwo20/Group1 GitHub Wiki

User Story 1: Create account

As a user I want to be able to go to the website where I will be prompted to either log in or create an account with the website. After I create an account, I will then be prompted to log in with my newly created account

Priority: High

Risk: High

Core Feature

Story Points: 5

Task Breakdown:

  1. Create a database that can hold user information.

  2. Code a way for users to input a username and password.

  3. Query the database to add the users into the user table.

  4. Prompt users to login with the newly created account.

  5. Compare against the database to either login the user or not.

Acceptance Testing:

  1. Press button on login page that says "Create Account"

  2. Input username and password into their respective text boxes.

  3. Press button on create account page that says "Create Account"

  4. Input newly created information into their respective username and password boxes.

  5. Press button that says "Login"

User Story 2: Post

After I sign in with my account, I would like to see a text box where I will create my post. Inside of the box, I will be prompted to enter all the information for that post. Then I will click submit and the post will be placed on my timeline so that my friends can see.

Priority: High

Risk: High

Core Feature

Story Points: 5

Task Breakdown:

  1. Create a posts table in the database to store information on the post content, time posted, and who posted it..

  2. Create prompt for user to input post content and submit it.

  3. Store this information into the posts table in the database.

  4. Create a way to show user's post on their timeline in chronological order.

Acceptance Testing:

  1. Click on text box that says "What's on your mind, 'user'?"

  2. Input the information that you want to post to your timeline.

  3. Press button that says "Post".

  4. See post on timeline.

User Story 3: Add Friend

As a user I want to be able to add friends. After getting to my friend's page I would see a button to follow them. Then I would click the button and my friend would receive a request. If they accept they will be added to my friend's list.

Priority: Medium

Risk: Low

Core Feature

Story Points: 4

Task Breakdown:

  1. Implement a way in the database to store which people someone is following.

  2. Create a button on a user's page that will allow other users to send the user a friend request.

  3. Create a page that will show who has sent friend requests along with an accept and deny button.

  4. If accept, add the user to the other user's friend list.

  5. If deny, remove the friend request without making the two users friends

Acceptance Testing:

(User 1)

  1. Navigate to intended friend's frontpage.

  2. Press the button that says "Friend 'user'"

(User 2) 3. Navigate to friend/friend request page by pressing button on your frontpage that says "Friends".

  1. Press either the button that say "Accept" or "Deny" friend based on your choice.

(User 1) 5. (If accept) Can now see friend's posts on timeline.

  1. (If deny) Cannot see intended friend's posts on timeline, but can send another request.

User Story 4: Interact with Posts

As a user I want to be able to view and interact with my friends posts. While I'm logged in and on the my page or my friend's page, I expect to see several buttons to interact with my posts such as a like button, a comment button, or a share button. If I click on the like button the post will have a number appear showing how many likes it has. If I click on the comment button I will be prompted to write a message that will appear beneath their post. Lastly, if I click on the share button, the post will be put on my timeline.

Priority: Medium

Risk: High

Core Feature

Story Points: 5

Task Breakdown:

  1. On all posts create buttons for liking, commenting, and sharing.

  2. Make the like button increase a like counter on a post when pressed.

  3. Create a list of posts that have been shared by a user in their account information.

  4. Display shared posts on a user's timeline along with their own posts.

  5. Create a comments list for a posts information.

  6. Make a prompt for a user to input and submit a comment.

  7. Add the comment to the database.

  8. Display comments under the post it is made for.

Acceptance Testing:

  1. Press button that says "Like" under the desired post.

  2. See the like number increment by 1.

  3. Press the button that says "Share" under the desired post.

  4. See the shared post on your own timeline.

  5. Type comment into the "COMMENT" text box under desired post.

  6. See comment under the desired post.

User Story 5: Search

As a user I want to be able to search for my friends and posts

Priority: Medium

Risk: Low

Core Feature

Story Points: 4

Task Breakdown:

  1. Create a search bar.

  2. Prompt a user for input in the search bar.

  3. Query the database for all users and posts with similar names/content to the inputted search.

  4. Create a display to show the results to the user.

Acceptance Testing:

  1. Press the text box that says "Search for user here".

  2. Put the name/content of the user/post you would like to find.

  3. Press the button that says "Search".

  4. See the search options on a page.

  5. Select the user whose page you want to go to.

  6. See the timeline of the selected user.

User Story 6: Profile page

As a user I want to be able to go to have a profile page that I can edit to show my name and bio. I also want to be able to view other users' profile pages.

Priority: High

Risk: Low

Core Feature

Story Points: 5

Task Breakdown:

  1. Create a page that can display user information.

  2. Add a button from a user's timeline that will go to the page.

  3. Create an edit page where a user can edit their information.

  4. Check if name is correct format.

  5. Change corresponding information in the database.

Acceptance Testing:

  1. Go to your timeline.

  2. Press the button named, "(user)'s Profile".

  3. Press the button named, "Edit".

  4. Input new name/bio into their respective boxes and hit submit.

  5. Press the return to profile page button.

  6. See updated information on the profile page.