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.