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
- User will be redirected to the
- What happens if the user doesn't exist yet?
- Display the message
Invalid credentials :( please try again.
- Display the message
- What happens if the user enters the wrong password?
- Display the message
Invalid credentials :( please try again.
- Display the message
Acceptance Criteria
- 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.
- When I'm on the
- 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.
- Then at the top of the form, I will see a red message
- 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.
- Then at the top of the form, I will see a red message
- 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.
- Then I will be redirected to the homepage at the
- Given that I am a logged-in user
- When I refresh the homepage at the
/
route - Then I will still be logged in
- When I refresh the homepage at the
- 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
- When I try to navigate to the homepage at the
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
- User will be redirected to the
- What happens if the user with the username or email already exists?
- What happens if the user enters the wrong password confirmation?
Acceptance Criteria
- 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.
- When I'm on the
- 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.
- Then at the top of the form, I will see a red message
- 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.
- Then at the top of the form, I will see a red message
- 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.
- Then I will be redirected to the homepage at the
- 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
- When I refresh the homepage at the
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
- 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.
- When I'm on the
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
- 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
- When I'm on the route
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
- 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
- When I'm on the route