User Stories - Intro-to-SE-Spring-21/Group-6 GitHub Wiki
User Story #1: Login
CORE FEATURE
PRIORITY: HIGH
RISK: MODERATE
STORY POINTS: 5
As a user, I would like to login to the service to access my account.
Sub-Stories:
- As a new user, I would like to signup to the service.
- As a user, I would like to login to the service.
- As a user, I would like for my confidential information to be protected.
- As a user, I would like to access my account, and post as my account.
- As a user, I would like to stay logged in to my current account until I logout.
Task Breakdown:
- Create a signup webpage.
- Create text fields for usernames, emails, passwords, and security questions.
- Store and maintain all passwords in an encrypted format.
- Create a webpage for the new account.
- Create either a login webpage or a login dropdown menu.
- Create text fields for emails and passwords.
- Match encrypted inputs to the encrypted passwords in the database.
- Correctly assign user logins to their respective accounts.
- Maintain user logins through sessions, persistently.
- Assign user logins to a user's cookies.
- Bring users back to the home page, without an account, when they logout.
Acceptance Test:
- Go to the signup webpage.
- Create a new account.
- Verify that the newly-created password is properly encrypted in the database.
- Verify that a new webpage has been created for the account.
- Logout.
- Verify that the user returns to the home page, without an account.
- Login.
- Verify that the user input for a password is properly encrypted.
- Verify that the user is assigned with the correct account.
- Stop the browser session, return to the service, and verify that the user is still logged in.
User Story #2: Create and Send Tweets
CORE FEATURE
PRIORITY: HIGH
RISK: LOW
STORY POINTS: 4
As a user, I want to be able to create and post tweets for others to view.
Sub-Stories:
- As a user, I want to be able to click a button to create a tweet.
- As a user, I want to be able to tweet a message or a media attachment.
- As a user, I want to be able to post my tweets to my timeline.
- As a user, I want my tweets to be viewable to others.
Task Breakdown:
- Create a button to be able to “Tweet”.
- Create a section for the user to write the tweet.
- Create a send button to save the tweet to a database.
- Post the tweet to the users timeline.
Acceptance Test:
- Post a tweet
- Create two unique users
- Have one attempt to post a tweet
- Have the other look for it on their timeline
User Story #3: Search
CORE FEATURE
PRIORITY: HIGH
RISK: LOW
STORY POINTS: 3
As a user, I want to be able to search for other users and tweets.
Sub-Stories:
- As a user, I want to be able to open a search bar.
- As a user, I want to be able to type words/phrases into the search bar.
- As a user, I want to be able to see users and tweets that contain the given words/phrases.
Task Breakdown:
- Create a search bar
- Create a search bar that users can input queries in on the front end.
- Search Data
- Strip the data to secure against sql injections.
- Tokenize the data into a query format.
- Query the database.
- Return results to client.
- Format and display returned data in the frontend.
Acceptance Test:
- Add data to the database.
- Using the search feature query the data.
- Match intended results with results.
User Story #4: Liking Tweets
CORE FEATURE
PRIORITY: HIGH
RISK: LOW
STORY POINTS: 4
As a user I want to be able to like my tweets as well as other's tweets.
Sub-Stories:
- As a user I want to be able click a button to like a tweet.
- As a user I want to be able to see who liked a tweets.
- As a user I want to be able to unlike tweets I've already liked.
Task Breakdown:
- Create a like button on tweets.
- Button will indicate if the user has liked or not.
- Pressing button will toggle liked state.
- Create a list of users who liked the tweet.
- Display full list to Author display smaller list on tweet.
Acceptance Test:
- Have a user like/unlike a tweet.
- Create multiple unique users. (depending on how we shorten the liked list)
- Have one create a post.
- Have everyone like that post.
- Liked List.
- Have author check if he can see all of the users who liked his tweet.
- Have individuals check if they can see a shortened version on the tweet.
User Story #5: Following and Unfollowing other Users
CORE FEATURE
PRIORITY: HIGH
RISK: LOW
STORY POINTS: 3
As a user I want to be able to follow other users to prioritize their tweets in my feed.
Sub-Stories:
- As a user I want to be able to follow another user.
- As a user I want to be able to unfollow another user.
- As a user I want to see my followed user's tweets in my feed.
- As a user I want to see who I follow.
Task Breakdown:
- Create a Button on Accounts that will follow/unfollow the account.
- If the user is already followed show "unfollow".
- If the user is not followed show "follow".
- Display followed user's tweets more frequently then non followed user's tweets.
- Have a notification pool that shows when a followed person posts.
Acceptance Test:
- Follow/Unfollow.
- Create two unique users.
- Have each follow each other.
- Have one unfollow the other.
- Notify Tweet.
- With the user that is not following the other post a tweet.
- Check if the user following the tweet poster received a notification.