-
Notifications
You must be signed in to change notification settings - Fork 1
User Stories
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.
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.
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.
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.
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.
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.
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.
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.