User Stories - GaronSmith/marvelous-movies GitHub Wiki
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
- Will the user enter a username or an email address to login?
- User will login via email and password
- What routes should we use for login?
- User will login via /login route (maybe form at top page )
- Where should the user be redirected after login?
- User will be redirected to the / homepage
- Will we allow OAuth authentication via a third party?
- Not yet -- maybe in a future story
- What happens if the user doesn't exist yet?
- Show the message above the login form "Sorry the email or password was incorrect."
- What happens if the user enters the wrong password?
- Show the message above the login form "Sorry the email or password was incorrect."
- Should this story include allowing a user to reset their password?
- no as email correspondence is out of scope.
- Should logging in use session-based or use token-based authentication?
- This application will use session-based authentication.
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 am on the / homepage
- Then there will be the most recently review movies and top rated
- 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 "Sorry the email or password was incorrect."
- 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 "Sorry the email or password was incorrect."
- When I try to fill out the form with a valid email and password and press Enter or press the "Login" button
- Then I will be redirected to the homepage at the / route.
- 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 view my homepage
- Then I will view the most recent actions of my followed friends
- Then I will view the most recent added movie to each of my blockbuster shelves
- Then I will view my current movie watching status
Sign-Up
As an unauthorized user, I want to be able to sign up for the website via a signup form, so that I can access this marvelous website.
Questions
- How long should the user session last?
- Until the user closes out their browser or logs out
- What information are we collecting from the user?
- Username, First Name, Last Name, Email Address, Bio, Password
- Will we confirm their password during signup?
- Yes
- What does the UX look like? What does the form look like? How simple is it?
- UX should be simple and not complicated
- Where should the user be redirected after signup?
- User will be redirected back to the homepage with a message, "Thank you for joining the world of Marvelous Movies. Please sign in to access your account."
- What happens if the user has signed up previously? What makes a user unique?
- Email and username should be what makes user unique.
- Show the message, "Sorry, that email address or username already exists."
- What are the password requirements?
- At least 6 characters, must include 1 Uppercase, 1 Lowercase, 1 Number
- What happens if the user's password isn't strong enough?
- Assuming the password and password confirm fields are right above the submit button, stay on the same page, and show the message, "Sorry, the password you entered does not meet our requirements."
- Are we allowing sign up via OAuth?
- Not at this time
- Do we need a confirmation email?
- No, as email correspondence is out of scope.
- What routes should we use for sign up?
- User will sign up via /signup route
- If sign up is successful, user will be redirected to /homepage
Acceptance Criteria
- Given that I'm a user who has not yet signed up and
- When I'm on the /signup route
- Then there will be a signup form with username, email, and password field and a "Sign Up" button to submit the form (bio, first name, last name??)
- When I try to fill out the form with an email or username that already exists with a valid password and press Enter or the "Sign Up" button
- Then, at the top of the form, I will see a red message "Sorry, that email address or username already exists."
- When I try to fill out the form with a password shorter than 6 characters and/or missing the specific character requirements
- Then, at the top of the form, I will see a red message "Sorry, password must be at least 6 characters long and contain one of each of the following characters: uppercase, lowercase, number."
- When I try to fill out the form with a valid email, username, and password and press Enter or the "Sign Up" button
- Then, I will be redirected to the homepage at / route
- Given that I am a user that just signed up, when I refresh the homepage at / route
- Then, I will still be logged in
Log Out
As a user, I want to be able to log out of my account at my leisure. When I click the "Logout" button/link on the navigation bar, I want to be able to hide my account information from the rest of the users on this device.
Questions
- Will the user have access to the logout button on each page or just on their profile or homepage?
-
- Possibly a dropdown on profile/dashboard and homepage
- What routes should we use for logout?
-
- /logout
- Where should the user be redirected after logging out?
-
- User should be redirected to the /homepage
Acceptance Criteria
- Given that I'm a user who is currently logged in
- When I'm on the / homepage route
- Then there will be a Logout button/link on the navigation bar that I can click at my leisure, so I will be able to hide my account information
- Given that I am a user that is logged in, when I click the Logout button/link
- Then, I will be redirected to the /homepage and my account information will be hidden
Demo User
As a first time user who wants to demo Marvelous Movies,I would like to peruse the site with a demo user login via a single button click on the login and signup form, so that I can access Marvelous movies without creating a new account.
Demo User Questions
- Will the user use an email address or username to login?
- The user will login with the username [email protected] and the password "password"
- What will the demo user have access to?
- The demo user will have access to the list of movies, and some reviews of the movies
Search (bonus)
As a user I want to be able to search for a movie by title or genre. When I search for a movie I want to be able to see the Titles brief description and current average rating. When I click on the result,I want to be brought to the movie profile page.
Questions
- Will a logged in user be able to use a search feature?
- Yes they will be able to search by Title and Genre
- Will the search be case sensitive?
- no the search will be case agnostic.
- Will there be search options presented?
- Yes as the user inputs search a regex matched limited results will show below.
- Can the user click on the search options?
- yes this will populate with the rest of the search bar.
- How will the user activate the search?
- User will click on search button.
Not logged in user homepage (top and recent reviews)
As a not logged in user on the homepage, I want to see movies, so that i can be inspired to watch/sign up.
Questions
- what will the user be able to see?
- most recently interacted with movies, top rated movies, sign in/sign up
- Will the user be able to sign up
- Yes using a first name, last name, email and password via a link at the top of the page
- If the user exists but is not signed in, what will happen?
- The site will have no way to identify the user until they sign in- which is a form at the top of the page
- Will the user be able to interact with the movies
- no, if they click it will redirect to the login page with the message "please sign in to {activity} with this film"
Acceptance Criteria
- Given that I am a not logged in user
- When I am on the homepage
- Then I will see a shelf with top rate movies and a shelf with most recently interacted with movies- as well as sign in/sign up
Create Reviews
As a logged-in user, I want to create a review via a form on the movie profile page, so that I can tell others my thoughts on that specific movie.
Questions
- Is there a limit to how many reviews can be made in a certain time frame?
- As long as a user has a status of watched for that movie, they can review any amount
- Is there a character limit for each review?
- Yes, 1000(?)
- Is there a limit to how many reviews can be made on one movie by the same user?
- Yes, one review per user, per movie
Acceptance Criteria
Edit Reviews
As a logged-in user, I want to be able to edit my own reviews that I created, so that I can show others that I changed my thoughts on this specific movie.
Questions
- Is there a limit to how many reviews can be edited in a certain time frame?
- As long as a user has a review they made, any amount
- Is there a character limit for each review?
- Yes, 1000(?)
- Is there a limit to how many reviews can be edited on one movie by the same user?
- No
Acceptance Criteria
Delete Reviews
As a logged-in user, I want to be able to delete my own reviews, so that none of the users in Marvelous Movies can see it anymore, including myself.
Questions
- Is there a limit to how many reviews can be deleted in a certain time frame?
- As long as a user has reviews, any amount
- Is there a limit to how many reviews can be deleted by the same user?
- No
Acceptance Criteria
Status
As a logged in user I want to be able to see a status of my activity when I am on my home page, so that I will be informed on when I last watched a movie
Questions
- How many status options will there be?
- Possibly 4.
- What should the different time lengths be?
- option 1- watched a movie today, option 2- watched a movie within last week, option 3- watched a movie within last month, option 4- longer than a month.
- What will the route be for my status?
- at this time i do not think it should be anything more than a div on '/'.
- Can I interact with my status?
- At this time, no.
- Can I see my friends' status?
- Possibly, as an addition to the activity feed- it can be like a status on slack(next to their name, associated with an emoji).
Acceptance criteria
- Given that I am a logged in user
- When I am on my home page '/'
- Then I will see my status of activity
- Given that I have watched a movie today(or had some activity)
- When I am on my home page
- Then my status will say - "Movie Medalist" with an associated medal emoji
- Given that I have watched a movie within the last week (or had some activity)
- When I am on my home page
- Then my status will say - "Film Fanatic" with an associated {?} emoji
- Given that I have watched a movie within the last month (or had some activity)
- When I am on my home page
- Then my status will say - "Moderate Movie-er" with an associated {?} emoji
- Given that I have not watched a movie within the last month (or had some activity)
- When I am on my home page
- Then my status will say - "Fading Film Follower" with an associated {?} emoji
- Given that I ham a logged in user and I am following friends
- When I am on my home page
- Then I will see the status of my friends
Movie Profile Page
As a user I want to be able to view a page dedicated to a single movie. When I view the page I will be able to view other users reviews and ratings. I want to be able to rate, review, and add to block buster shelf.
Questions
- As a logged in user will I be able to read, write reviews on a movie page?
- Yes a logged in user will be able to read a list of reviews as well as write reviews on a movie page.
- What routes should we use for the movie page?
- movie profile routes will follow '/movies/:id' routes
- On a movie profile will a logged in user be able to see if it is on his or her blockbuster shelf?
- yes this information will be presented.
- On a Movie Profile will a user be able to see the movie poster?
- yes if it exists in the data base else it will show a 'no Poster Available' poster
Follow/unfollow Friend
- as logged in user I want to be able to follow or unfollow friends so that I can view or not view their actions on their feed
Questions
- Can I unfollow someone I do not follow?
- no it will be a toggle of follow or unfollow depending on current relationship status
- Is there a limit to the number of people you can follow?
- No
- Will I be able to see the unfollow button from the homepage feed of actions?
- no this will only be accessible from the /following route on the user page and the target users personal page with blockbuster shelves
Add to blockbuster shelf
- As a user I want to be able to add a movie to a particular status's blockbuster shelf where I see a movie.
Questions
- What does the add to blockbuster action look like?
- drop down menu with the possible options
- what does a completed action look like?
- the act of clicking on the status.
- Is there a limit to the number of movies we can add to our shelves?
- no limit
Create Rating (API)
- As a user I want to be able to rate a movie on a scale of 1 - 5 any where I see the movie.
Edit Rating (API)
- As a user who has already rated a movie I want to be able to edit my rating any where I see the movie.
Delete Rating (API)
- As a user who has already rated a movie I want to be able to delete my rating any where I see the movie.