User Stories - alexsmaldone/good-game-guides 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 /signup 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 log-in form.
        • So that I can seamlessly access the site's functionality
    • When I enter invalid data on the log-in 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 /signup or /login pages:
      • 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 log out confirmation and links to the Home page or to Sign in again.
        • So that I can easily log out to keep my information secure.

Homepage

  • As an unregistered and unauthorized user, I want to be able to view all the game guides.
    • When I'm on the / page:
      • I can browse all the game guides available.
        • So that I can find game guides that interest me.
  • As a logged in user, I want to be able to view all the game guides.
    • When I'm on the / page:
      • I can browse all the game guides available.
        • So that I can find game guides that interest me and interact with them.
  • A a logged in user, I want to be able to preview the guides I have already put in my "currently playing" and "want to play" shelves.
    • When I'm on the / page:
      • I can see the icons of the guides and click on them.
        • So I can easily go to a certain guide to update its status or leave a review.
  • As a logged in user, I want to be able to preview all of my shelves.
    • When I'm on the / page:
      • I can see the total number of guides in each of my shelves and click on a shelf.
        • So that I view an overview of the progress I've made in guides I've found and completed.
        • So that I can quickly navigate to a specific shelf to interact with the guides within it.

Game Guides

Viewing a Game Guide

  • As a logged in user, I want to be able to view a game guide.
    • When I'm on the /game-guides/:id page:
      • I can see all the information on a specific game guide.
        • So that I can make a decision on whether or not I want to play along with this guide or to determine if I have already played along with this guide.

Updating Game Guide

  • As a logged in user, I want to be able to update the status of a game guide.
    • When I'm on the /game-guides/:id page:
      • I can select on a dropdown menu to update the play status of a game guide.
        • So that I can organize and keep track of the guides I want to interact with later.
  • As a logged in user, I want to be able to put a guide in my custom shelves.
    • When I'm on the /game-guides/:id page:
      • I can select on a dropdown menu to add a game guide to a custom shelf.
        • So that I can organize and keep track of the guides I want to interact with later.

Removing Game Guide

  • As a logged in user, I want to be able to remove a guide from my shelves.
    • When I'm on the /game-guides/:id page:
      • I can click a remove button to completely remove the guide from my shelves and related reviews
        • So that when I realize I added the wrong guide I can easily remove it.

My Game Guides

Viewing Shelves

  • As a logged in user I want to be able to view all my game guides I've collected.
    • When I'm on the /my-game-guides page:
      • I can view all the games I've added to my shelves.
        • So that I can easily find guides I'm looking for.
  • As a logged in user I want to be able to view guides on their specified shelves.
    • When I'm on the /my-game-guides/status-shelves/:id or /my-game-guides/custom-shelves/:id page:
      • I can view the games I've placed into said shelf.
        • So that I can easily find guides I'm looking for to leave a review or put it in a different shelf.

Creating Custom Shelves

  • As a logged in user I want to be able to create custom shelves.
    • When I'm on the /my-game-guides page:
      • I can click "Add shelf" to create a custom shelf.
        • So that I can organize guides in my preferred way.

Updating Custom Shelves

  • As a logged in user I want to be able to edit my custom shelf names.
    • When I'm on the /my-game-guides/custom-shelves/edit page:
      • I can click "Rename" to change the name of the shelf.
        • So that I can organize guides in my preferred way.

Removing Guides from Shelves

  • As a logged in user I want to be able to remove guides from my custom shelves.
    • When I'm on the /my-game-guides/custom-shelves/:id:
      • I can select the 'X' button to remove the guide from the shelf.
        • So that I no longer have to view that guide in this particular shelf.
  • As a logged in user I want to be able to remove a guide from my game guides completely.
    • When I'm on the /my-game-guides/status-shelves/:id:
      • I can select the 'X' button to remove the guide and my reviews for that guide from the shelf.
        • So that I no longer have that guide associated with my account.

Deleting Custom Shelves

  • As a logged in user I want to be able to remove custom shelves.
    • When I'm on the /my-game-guides/custom-shelves/:id/edit page:
      • I can select the 'X' button to remove the shelf from my list of custom shelves.
        • So that I no longer can see that shelf.

Reviews

Create Reviews

  • As a logged in user, I want to be able to add a review on a game guide.
    • When I'm on the /game-guides/:id/reviews/new page:
      • I can click on the number of hearts I want to give the guide.
        • So that I can convey how good of a guide it is.
      • I can write my review in the text-box.
        • So that I can clearly express what I liked/disliked about the guide.

Read Reviews

  • As an unregistered and unauthorized user, I want to be able to read reviews made by registered users on a guide.
    • When I'm on the /game-guides/:id page:
      • I can scroll through the reviews associated with this guide.
        • So that I can make a decision on whether I should investigate this guide further.
  • As a logged in user, I want to be able to read reviews made by other users on a guide.
    • When I'm on the /game-guides/:id page:
      • I can scroll through the reviews associated with this guide.
        • So that I can make a decision on whether I should use the guide or not.

Update Reviews

  • As a logged in user, I want to be able to edit a review I've posted.
    • When I'm on the /reviews/:id/edit page:
      • I can see my previously selected number of hearts and adjust the rating.
        • So that I can update how good I think the guide is after gaining more knowledge.
      • I can see my previously submitted text and change it within the text-box.
        • So that I can accurately convey my new feelings on the guide.

Delete Reviews

  • As a logged in user I want to be able to remove a review I made.
    • When I'm on the /reviews/:id/edit page:
      • I can select the 'X' button to remove the review.
        • So that when I realize I left a review on the wrong guide, I can easily remove it.