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.