User Stories - michellekontoff/spudhub 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.
  • As a Demo user I have all the functionality that a logged-in user has.

Log Out

  • As a logged in(LI) 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 product listings.
        • So that I can easily log out to keep my information secure.

Product Listing

Create product

  • As a LI user I want to be able to create a new product listing.
    • When I'm on the /products/new page:
      • I can create and submit a new product.
      • So that I can make lots of money.

Viewing

  • As a logged-out(LO) or LI user I want to be able to view the most recent posted products on the landing page.
  • If you are LI or LO users I want to be able to go to a specific product page where I can also view the reviews and product descriptions.
  • If I am a LI user I want to be able to see a purchasing button on the product page.

Updating

  • As a LI user I want to be able to edit and update my created product listing when I click the edit button on the product page.
    • When I am on the /products/:id page:
      • I can click "Edit" to make permanent changes to the product listed.

Deleting

  • As a LI user I want to be able to delete my product that I've listed by clicking the Delete button associated with the product.
    • When I'm on the /products/:id page:
      • I can click on "Delete" to permanently delete a product.

Shopping Cart

Viewing

  • When I'm on the /shopping-cart page:
    • As a LI user I want to be able to see all my items with their quantities and their prices.
    • As a LI user I want to be able to see the subtotal and purchase button at the bottom of the page.
    • I can get to my shopping cart page from the nav bar

Updating

  • When I'm on the /shopping-cart page:
    • As a LI user I want to be able to update the quantity of each item in my cart.
  • As a LI user I want to be able to add items to my cart from the product page.

Deleting

  • When I'm on the /shopping-cart page:
  • As a LI user I want to be able to delete items from my cart.

Reviews

Creating

  • When I'm on the /products/:id page:
    • As a LI user I want to be able to leave a review on the product page of products I've purchased.

Viewing

  • When I'm on the /products/:id page:
    • As a LI or LO user I want to be able to view the reviews on a product page.

Updating

  • When I'm on the /product/:id page:
    • As a LI user I want to be able to edit my review.
      • I can click the "Edit" button next to my review and edit it.

Deleting

  • When I'm on the /product/:id page:
    • As a LI user I want to be able to delete my review.
      • By clicking the "Delete" button next to my review I can delete the review.

Search

  • As a LO or LI user I can use the search bar to find products by name.
    • I want to be able to search a product by name and have the search return any products that match my input.