User Stories - fangruz114/Lizuvia 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 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.
      • 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 lob-up 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

Viewing products

  • I want to browser all products without logging in
    • When I'm on the /products page:
      • I can browse the all the products.
  • I want to be able to view a specific product and its comments.
    • When I am on the /products/:id page:
      • I can read all detail information about this product.

Create products

  • As a logged in user, I want to be able to create a new product.
    • When I'm on the /new-products page:
      • I can create and submit a new product.
        • So that the new product I created can be seen on the /products page.

Updating products

  • As a logged in user, I want to be able to edit the products I listed.
    • When I'm on the /users/:id/products page:
      • I can click "Edit" to update the product information for the product listing I created.
        • So that I can fix errors or update prices or information to any of my products

Deleting Products

  • As a logged in user, I want to be able to delete my product listings.
    • When I'm on the /users/:id/products or /products/:id/edit page:
      • I can click "Delete" to delete the product I listed.
        • So that when I discontinue a product, I can easily remove it.

Orders

Create an order:

  • As a logged in user, I want to be able to place an order.
    • When I'm on the /products/:id page:
      • I can add a product to the shopping cart
    • When I'm on the /cart page:
      • I can checkout and place an order for the items in my shopping cart.

Viewing my order history:

  • As a logged in user, I want to be able to view all my order history and order details
    • When I'm on the /users/:id/orders page:
      • I can see all my order history.
      • I can see each order details by click on each order.

Updating my order:

  • As a logged in user, I want to be able to edit my order within certain time frame.
    • When I'm on the /orders/:id or /users/:id/orders page:
      • I can increase or decrease quantities for the products in my order, or cancel the items in my order.
        • So I can make change to my order within certain time frame.

Canceling my order:

  • As a logged in user, I want to be able to cancel my order within certain time frame.
    • When I'm on the /users/:id/orders page:
      • I can cancel my order placed within certain time frame.
        • So if I change mind, I can still cancel it.

Reviews

Create a review to a product

  • As a logged in user, I want to review an product I purchased
    • When I'm on the /orders/:id order detail page:
      • I can add a review for each product I purchased
        • So that I can provide feedback for product improvement

Viewing Reviews of one product

  • I want to be able to view a product's reviews
    • When I'm on the /products/:id page:
      • I can view the reviews of a product
        • So that I can have better understanding about the product.

Updating my Review

  • As a logged in user, I want to be able to edit my review
    • When I'm on the /users/:id/reviews page:
      • I can update my review according to the shopping experience.
        • So that I can provide updated feedback on the product.

Deleting my Review

  • As a logged in user, I want to be able to delete the reviews I posted
    • When I'm on the /users/:id/reviews page
      • I can delete a previously posted review

Search, Filter & Sort

search keyword in the search bar

  • I want to be able to search products by keywords that I enter
    • On any page:
      • I can search products by enter keywords in the search bar located in the Navigation bar.
        • So I can find the specific products I need

sort products by "New Arrivals" or "Prices"

  • I want to be able to sort the products by price, high to low, low to high or "New Arrivals"
    • When I'm on the /products or /products/:categories/:id pages:
      • I can sort the products by price, high to low, low to high or "New Arrivals"
        • So I can find the products tailor to my need quickly.