Skip to content

User Stories

Juvenal Burguillos edited this page Aug 23, 2023 · 16 revisions

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-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 /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 recent FauxTweets.
        • So that I can easily log out to keep my information secure.

Products

Create Products

  • As a logged in user, I want to be able to create new Products.
    • When I'm on the /new-product page:
      • I can create and list a new Product.
        • So that I can promote my Products on Itsy.

View Products

  • As a logged in or logged out user, I want to be able to view a selection of the most recent Itsy Products.

    • When I'm on the /products page:
      • I can view all products in order of most recent to least recent.
    • When I'm on the /products/categories/<type> page:
      • I can filter by product type.
  • As a logged in or logged out user, I want to be able to view a specific Product and its associated Reviews and Favorites.

    • When I'm on the /products/<int:id> page:
      • I can view the content of the Product, as well as the associated Reviews and Favorites.

Updating Products

  • As a logged in user, I want to be able to edit my Products by clicking an Edit button associated with the Product anywhere that Product appears.
    • When I'm on the /products/<int:id> or /users/<int:id>/products pages:
      • I can click "Edit" to make permanent changes to Products I have posted.
        • So that I can fix any errors I make in my Products.

Deleting Products

  • As a logged in user, I want to be able to delete my Products by clicking a Delete button associated with the Product anywhere that Product appears.
    • When I'm on the /products/<int:id> or /users/<int:id>/products pages:
      • I can click "Delete" to permanently delete a Product I have posted.
        • So that when I realize I shouldn't have posted a Product, or decide to remove it from the Itsy website, I can easily remove it.
        • I should expect a confirmation modal before my product is permanently deleted.

Favorites

Create Favorites

  • As a logged in user, I want to be able to create Favorites list.
    • When I’m on the /product/<int:id> page:
      • I can Favorite a product.
        • So that I can reference the product I’m interested in easily in the future.

Viewing Favorites

  • As a logged in or logged out user, I want to be able to view a specific product’s total favorites.
    • When I’m on the /product/<int:id> page:
      • I can view the detail of the Favorite product, as well as the associated product favorite numbers by all users.
        • So that I can see how many people has like the product.
  • As a logged in user, I want to be able to view a selection of my Favorite products.
    • When I’m on the /user/<int:id>/favorites page:
      • I can view all my Favorite products.
        • So that I can see all the favorite product that I had favorited before.

Updating Favorites

  • As a logged in user, I want to be able to delete products from my Favorites by clicking a Delete button.
    • When I’m on the /user/<int:id>/favorites page:
      • I can click “Delete” to permanently delete a product from my Favorites list that I had added before.
        • So that when I am no longer interested in a product, I can easily remove it.

Shopping Cart

Creating a Shopping Cart

  • As a logged in user, I want a Shopping Cart to always be available.
    • A Shopping Cart will be created when I sign up as a user.
    • The same Shopping Cart will persist throughout different sessions.
    • When I complete a purchase transaction, a new Shopping Cart will be created.

View Shopping Cart

  • As a logged in user, I want to be able to view all the products in my current Shopping Cart.

Updating Shopping Cart

  • As a logged in user, I want to be able to edit my Shopping Cart.
    • When I'm on the /product/<int:id> page:
      • I can add the product to my Shopping Cart.
        • If the product is already in my cart, the quantity will update.
    • When I'm on the user/<int:id>/cart page:
      • I can update the quantity of a product.
      • I can remove a product.
    • I want to be able to complete the purchase transaction.

Deleting Shopping Cart

  • As a logged in user, I want to be able to delete my Shopping Cart.
    • If I don't like the products in my Shopping Cart, I want a button that will create a new Shopping Cart.

Reviews

Create Reviews

  • As a logged in user, I want to be able to post a review
    • I should only be able to post a review for an item I purchased
      • I should not be able to leave a review on my own product
        • I should not be able to leave a review on a product I already reviewed
  • As a logged out user, I should not be able to post reviews

View Reviews

  • As a logged in or logged out user, I want to be able to view a selection of the most recent reviews for a particular product on the product page
    • When I'm on the /products/int:id
      • I can view the Itsy reviews in order of most recent to least recent review
  • As a logged in or logged out user, on an individual product page, I want to be able to view all Reviews for that specific product

Updating Reviews

  • As a logged in user, I should be able to interact with my own reviews
    • When I'm on the /products/<int:id>, or /users/<int:id>/products pages:
      • I should be able to click an edit button to update my reviews
        • I want to be able to change the review itself or the number of stars
        • I should not be able to edit reviews that weren't written by me *As a logged out user, I should not be able to edit reviews

Deleting Reviews

  • As a logged in user, I should be able to delete my own reviews
    • When I'm on the /products/<int:id>, or /users/<int:id>/products pages:
      • I should be able to click a delete button to delete the review
      • I should not be able to delete reviews I didn't write
      • So that when I realize I shouldn't have posted a Product, or decide to remove it from the Itsy website, I can easily remove it.
  • As a logged out user, I shouldn't be able to delete any reviews