User Stories - TranJohnny/microcosm_app GitHub Wiki

User Stories

Login

As an unauthorized user, I want to be able to login to the website via a form, so that I can access my private information.

Questions

  • What can unauthenticated users access?
    • All routes other than the splash page are protected
  • Where should the user be redirected after login?
    • User will be redirected to the / homepage
  • What happens if the user doesn't exist yet?
    • Display the message Invalid credentials :( please try again.
  • What happens if the user enters the wrong password?
    • Display the message Invalid credentials :( please try again.

Acceptance Criteria

  1. Given that I'm a logged-out user and
    • When I'm on the /login route
    • Then there will be a login form with an email and password field and a "Login" button to submit the form.
  2. When I try to fill out the form with an invalid email and password combination and press Enter or press the "Login" button
    • Then at the top of the form, I will see a red message Invalid credentials :( please try again.
  3. When I try to fill out the form with an email that doesn't exist in the system and press Enter or press the "Login" button
    • Then at the top of the form, I will see a red message Invalid credentials :( please try again.
  4. When I try to fill out the form with a valid email and password and press press Enter or press the "Login" button
    • Then I will be redirected to the homepage at the / route.
  5. Given that I am a logged-in user
    • When I refresh the homepage at the / route
    • Then I will still be logged in
  6. Given that I am a logged-out user
    • When I try to navigate to the homepage at the / route
    • Then I will be redirected to the /login route

Signup

As an unauthorized user, I want to **be able to sign up for the website via a signup form, so that I can **access Microcosm**.

Questions

  • Will the user enter a username and an email address to signup?
  • Will we confirm their password during signup?
  • What routes should we use for signup?
  • Where should the user be redirected after signup?
    • User will be redirected to the / homepage
  • What happens if the user with the username or email already exists?
  • What happens if the user enters the wrong password confirmation?

Acceptance Criteria

  1. Given that I'm a user who has not signed up yet and
    • When I'm on the /signup route
    • Then there will be a signup form with an email, username, and password field and a "Sign Up" button to submit the form.
  2. When I try to fill out the form with an email or username that already exists with a valid password and press Enter or press the "Sign Up" button
    • Then at the top of the form, I will see a red message User with that email or username already exists.
  3. When I try to fill out the form with a password shorter than 6 characters and press Enter or press the "Sign Up" button
    • Then at the top of the form, I will see a red message Password must be at least 6 characters long.
  4. When I try to fill out the form with a valid email, username, and password and press Enter or press the "Sign Up" button
    • Then I will be redirected to the homepage at the / route.
  5. Given that I am a user that just signed up
    • When I refresh the homepage at the / route
    • Then I will still be logged in

Demo User

As a first-time user who just wants to demo Microcosm, I want to be able to try out the site with a demo user login via a single button click on the login and signup form, so that I can access Microcosm without having to go through the trouble of creating a new account.

...Questions and Acceptance Criteria

Logout

As a logged-in user, I want to logout via a button on the navigation bar, so that I can hide my account information to the rest of the users on this device.

...Questions and Acceptance Criteria

See activity on my Timeline

As a logged-in user, I want to see all the posts I am subscribed to on my Timeline, so that I can like and comment on Micro-Stories.

Questions

Acceptance Criteria

  1. Given that I'm a user who has not signed up yet and
    • When I'm on the /timeline route
    • Then I will be redirected to the splash page.

Create Micro-Stories

As a user, I want to be able to create Micro-Stories

Questions

  • Will the the user need to be logged in to create posts?
    • Yes
  • Who can access my stories?
    • By default, any other logged in user can view the story. Users can lock their stories behind higher subscription tiers.

Acceptance Criteria

  1. Given that I'm a logged-in user, and
    • When I'm on the route /stories/:id
    • Then there will be an individual story to read, and the ability to edit it if I am the author

Delete/Edit Micro-Stories from a Story

As a logged-in user, I want to be able to modify my Micro-Stories

Questions

  • Is this action recoverable?
    • No, once a story or Micro-Story is deleted or modified, it cannot be reversed.

Like/Comment on Stories and Micro Stories

As a user, I should be able to interact with Stories and Micro Stories made by other users.

Questions

  • Can the user reply to other comments?
    • Yes, users will be able to reply to comments.

Acceptance Criteris

  1. Given that I'm a logged-in user, and
    • When I'm on the route /stories/:id
    • Then there will be an individual story to read, and the ability to like and comment on it