Skip to content

User Stories

lmd414 edited this page Mar 29, 2021 · 17 revisions

User Story 1: Login

As a user, I want to be able to login to my account, so I can see my social media page.

[Core Feature]

Priority: High

Risk: High

Story Points: 3

Sub Stories:

  • As a user, I want to be able to register an account with a unique username and a password.
  • As a user, I want to be able to login using the login page.
  • As a user, I want to taken to the home page after logging in successfully.

Task Breakdown:

  • Create a front page with login/register buttons
  • Create login/register page
  • Create user table in database
  • Add user information to database
  • Redirect to login page after registration
  • Redirect to home page after login

Acceptance Testing:

  • If user accesses the website, the user should be presented a page to login or register.
  • If a user accesses the website and has recently logged out, the user should be presented a login page.
  • On the login page, if a user inputs a valid username and password, the user should be redirected to the home page.

User Story 2: Posting a "Tweet"

As a user, I want to be able to post a "tweet" that can be seen by other users.

[Core Feature]

Priority: High

Risk: Low

Story Points: 3

Sub Stories:

  • As a user, I want to be able to post a message that can be viewed by other users.
  • As a user, I want to be able to click a post button that posts the message I created to my homepage.
  • As a user, I want the homepage to refresh automatically after posting to see the new "tweet".
  • As a user, I want to be able to click a delete post button on the post page to delete my post.

Task Breakdown:

  • Create post button that redirects to a post page
  • Create text box that can take user input
  • Create post model for the database
  • Create submit button to save post to database
  • Redirect to home page after submitting
  • Create delete button to delete post from database

Acceptance Testing:

  • If user is logged in, the homepage presents a clickable post button.
  • Upon clicking the post button, redirect to the post page.
  • Upon being directed to this page, the user should be able to input text for their post.
  • Upon clicking post, the post will be added to the database and the user will be redirected to the homepage.
  • Ensure post is displayed on the homepage.
  • If user is logged in and created the post, the post page presents a delete post button.
  • Upon clicking the delete post button, redirect to a page that asks for reconfirmation of deleting the post.
  • Upon clicking delete, the post will be deleted from the database and the user will be redirected to the homepage.

User Story 3: Liking a "Tweet"

As a user, I want to be able to like another user's "tweet."

[Core Feature]

Priority: Medium

Risk: Low

Story Points: 2

Sub Stories:

  • As a user, I want to be able to click a like button on another user's "tweet."
  • As a user, I want to see the number of likes on the "tweet."
  • As a user, I want to be able to click an unlike button on another user's "tweet."

Task Breakdown:

  • Add likes attribute to post model
  • Create button for user to press like
  • Increment like attribute in post model
  • Create button for user to press unlike
  • Decrement like attribute in post model

Acceptance Testing:

  • On the homepage, if the user is logged in and has not liked the post, present a like button at the bottom of a post.
  • If the user clicks the like button, increment the amount of likes on the post.
  • If the user is logged in and has liked the post, present an unlike button at the bottom of the post.
  • If the user clicks the unlike button, decrement the amount of likes on the post.

User Story 4: Following a User

As a user, I want to follow another user.

[Core Feature]

Priority: Medium

Risk: Low

Story Points: 2

Sub Stories:

  • As a user, I want to be able to click a button to follow a user.
  • As a user, I want to be able to click a button to unfollow a user.

Task Breakdown:

  • Create button to follow a user on their page
  • Create followers attribute for user model
  • Increment followers in the user model database
  • Create button to unfollow a user on their page
  • Decrement followers in the user model database

Acceptance Testing:

  • On a post, present a link to the author's profile.
  • Upon clicking on the link, the user should be redirected to the author's profile.
  • If the user is logged in and is not following the author of the post, present a follow button.
  • Upon clicking the follow button, increment the author's follower count.
  • If the user is logged in and is following the author of the post, present an unfollow button.
  • Upon clicking the unfollow button, decrement the author's follower count.

User Story 5: Commenting on Posts

As a user, I want to be able to comment on a post.

[Additional Feature]

Priority: Medium

Risk: Medium

Story Points: 2

Sub stories:

  • As a user, I want to be able to click a button that will bring me to another page to write a comment on the post.
  • As a user, I want to post my comment for anyone looking at the post to see.

Task Breakdown:

  • Create comment button that redirects to a comment page
  • Create text box that can take user input
  • Create comment model for the database
  • Create submit button to save comment to database
  • Redirect to post page after submitting

Acceptance Testing:

  • If user is logged in, the post page presents a clickable comment button.
  • Upon clicking the comment button, redirect to the comment page.
  • Upon being directed to this page, the user should be able to input text for their comment.
  • Upon clicking comment, the comment will be added to the database and the user will be redirected to the post page.
  • Ensure comment is displayed on the post page.

User Story 6: Search bar

As a user, I want to be able to type in a search bar to find a user or contents in a post.

[Additional Feature]

Priority: Medium

Risk: Low

Story Points: 2

Sub stories:

  • As a user, I want to be able to search for a user in a search bar.
  • As a user, I want to be able to search for contents in a post in a search bar.
  • As a user, I want to be redirected to the user page after finding the user.

Task Breakdown:

  • Create a search bar for users to input text.
  • Queries the database for inputted text from users.
  • Give a link that redirects to searched user's profile page.

Acceptance Testing:

  • If a user is logged in, the homepage should have a text line for searching a user.
  • Upon pressing enter, the page will query the user and post database using the inputted text.
  • If the user exist, redirect to the user's profile page.
  • If the user does not exist, tell the user that no one with that name exist.
  • If any posts with the contents of the inputted text exist, output it on the screen.

User story 7: Navigation bar

As a user, I want to have a navigation bar that allows be search for users and links that will redirect me to home, log out, and profile page.

[Additional Feature]

Priority: Low

Risk: Low

Story Points: 1

Sub stories:

  • As a user, I want to have the links that redirects to the home page, log out, and view my own profile on a navigation bar that is on most pages.
  • As a user, I want to have the search bar in the middle of the navigation bar while on the home page.

Task Breakdown:

  • Create a navigation bar that it is at the top of each page except on the front, log in, registration, and log out page.
  • In the navigation bar, a link will redirect to the home page, log out page, or profile page.
  • In the navigation bar while on the home page, present the search bar in the middle of the navigation bar.

Acceptance Testing:

  • If a user is logged in, the navigation should have a link that redirects to the home, log out, and profile page.
  • If a user is logged in and on the home page, the search bar in the navigation bar should be able to search for users and redirect the searched user page.

User story 8: Following List

As a user, I want to have a list of people who I follow on the side of the webpage that allows me to redirect to their profile and check their posts.

[Additional Feature]

Priority: Low

Risk: Low

Story Points: 1

Sub stories:

  • As a user, I want to have the links of people I follow that redirects me to the respected profile.

Task Breakdown:

  • Create a navbar that contains users' URL
  • Display who the user is following

Acceptance Testing:

  • If a user is logged in, the list should be able to display the links to the profile of who the user is following.