As an unregistered and unauthorized user, I want to be able to sign up for the website via a sign-up form.
When I'm on the /sign-up page:
I would like to be able to enter my email, username, and preferred password on a clearly laid out form.
I would like the website to log me in upon successful completion of the sign-up form.
So that I can seamlessly access the site's functionality.
When I enter invalid data on the sign-up form:
I would like the website to inform me of the validations I failed to pass, and repopulate the form with my valid entries (except my password).
So that I can try again without needing to refill forms I entered valid data into.
Log In
As a registered and unauthorized user, I want to be able to log in to the website via a log-in form.
When I'm on the /login page:
I would like to be able to enter my email and password on a clearly laid out form.
I would like the website to log me in upon successful completion of the login form.
So that I can seamlessly access the site's functionality.
When I enter invalid data on the log-up form:
I would like the website to inform me of the validations I failed to pass, and repopulate the form with my valid entries (except my password).
So that I can try again without needing to refill forms I entered valid data into.
Demo User
As an unregistered and unauthorized user, I would like an easy to find and clear button on both the /signup and /login pages to allow me to visit the site as a guest without signing up or logging in.
When I'm on either the /sign-up or /login page:
I can click on a Demo User button to log me in and allow me access as a normal user.
So that I can test the site's features and functionality without needing to stop and enter credentials.
Log Out
As a logged in user, I want to log out via an easy to find log out button on the navigation bar.
While on any page of the site:
I can log out of my account and be redirected to a page displaying recent reviews.
So that I can easily log out to keep my information secure.
Games
Viewing Games
As a logged in or logged out user, I want to be able to see a list of games and as a logged in user I want to be able to create or modify a review on a game.
When I am on the / page:
I can view categories of games and I can click on a specific game.
So that I can view information about the game and be able to create/edit/delete my review on that game.
Adding Games
As a logged in user, I want to be able to add a game to a game shelf of my choosing.
When I am on the /games/:id page:
I can click on a dropdown option to choose a game shelf to add the game to.
So that I can add that game to my game shelf.
Game Shelf
Viewing Game Shelf
As a logged in user, I want to be able to see a list of all games associated with a specific game shelf.
When I am on the /gameshelves/:id page:
I can view all games in the associated game shelf.
So that I can keep track of what games I have in each game shelf.
Creating Game Shelf
As a logged in user, I want to be able to add a game shelf of my choosing.
When I'm on the /gameshelves page:
I can click a button to create a game shelf.
So that I create a category to store my games.
Deleting Game Shelf
As a logged in user, I want to be able to delete a shelf from my game shelves.
When I'm on the /gameshelves/:id/delete page:
I can click a button to delete a game shelf.
So that I can remove a shelf I no longer want in the a game shelves.
Game Shelves
Viewing Game Shelves
As a logged in user, I want to be able to view my game shelves and the games associated with the appropriate shelf.
When I'm on the /gameshelves page:
I can click on a game shelf in a list of game shelves to see all of my games associated with that game shelf.
So that I can see what games are associated with a specific game shelf.
Updating Game Shelves
As a logged in user, I want to be able to update the name of a game shelf that I have created.
When I'm on the /gameshelves/edit page:
I can click on a button to rename a game shelf that I have created.
So that I can change the name of a game shelf without affecting the games in that shelf.
Deleting Game Shelves
As a logged in user, I want to be able to delete a game shelf that I have created.
When I'm on the /gameshelves/edit page:
I can click a button to delete a game shelf that I have created.
So that I can remove any game shelves and the associated games that I no longer want/need.
Reviews
Creating Reviews
As a logged in user, I want to be able to post new reviews.
When I'm on the /games/:id/review page:
I can write and submit a new review.
So that I can share my thoughts about online games with friends.
Viewing Reviews
As a logged in user or logged out user, I want to be able to view a selection of reviews of a game.
When I'm on the /games/:id page:
I can view the reviews based off of the game's popularity.
So that I can read and interact with the thoughts of my friends.
Updating Reviews
As a logged in user, I want to be able to edit my review by clicking an edit button associated with the review anywhere that it appears.
When I'm on the games/:id or /reviews/:id/edit page:
I can edit the rating and the content of the review.
So that I can make any changes to my review.
Deleting Reviews
As a logged in user, I want to be able to delete my review/rating by clicking a delete button associated with the review anywhere that it appears.
When I'm on the /games/:id, /users/reviews/:id, or /reviews/:id/delete page:
I can click "Delete" to permanently delete a review/rating I have posted.
So that when I realize I shouldn't have publicly said something, I can easily remove it.