User Stories - Hieu-Ma/ggplays GitHub Wiki

Users

Sign Up

  • 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.