User Stories - dvidale/python-react-group-proj GitHub Wiki
User Stories
DashDine, an UberEats clone, is a website for users to order delivery and rate restaurants and services.
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.
- When I'm on the
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.
- When I'm on the
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.
- When I'm on either the
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 all restaurants. So that I can easily log out to keep my information secure.
- While on any page of the site:
View All Restaurants
- As a logged in or not logged in user, I want to view all restaurants for delivery from the home page
/
and the menus on the restaurant pages/restaurants/:id
.- So I can preview restaurants that are available before deciding if I want to order.
Create a New Restaurant
- Users should be able to create a restaurant.
- As a logged in user, I want to be able to create a new restaurant.
- I would like the website to include a button on the front page that says "Create Restaurant" that takes me to the
/restaurants/new
page- When I'm on the
/restaurants/new
page:- I can fill out details about a new restaurant in a form and submit them.
- When I am successful in submitting a new restaurant, I would like the website to redirect me to a page
restaurants/current
for managing my restaurants, where I will see the new restaurant added to my list of restaurants I own. - When I enter invalid data in the new restaurant 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.
- I would like the website to inform me of the validations I failed to pass, and repopulate the form with my valid entries.
- When I'm on the
Update a Restaurant
- As a logged in user and owner of a restaurant, I want to be able to update my restaurants.
- I would like the website to show all of my restaurants on one page to manage them
/restaurants/current
- When I click on one of my restaurants from the management page, I would like the website to show me a form on
/restaurants/current/:id
with my current restaurant information prefilled - When I click on the details page
/restaurants/:id
for a restaurant I own, I would like the website to include a "Update Details" button to take me to the restaurant update form/restaurants/current/:id
- So I can conveniently update details about my restaurants anywhere on the website
- I want to be able to edit the information in the form and submit it to update the restaurant details
- When I successfully submit an update for my restaurant:
- I would like the website to show me the restaurant's details with the submitted updates at
/restaurants/:id
- I would like the website to show me the restaurant's details with the submitted updates at
- When I enter invalid data in the update restaurant 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.
- I would like the website to inform me of the validations I failed to pass, and repopulate the form with my valid entries.
- I would like the website to show all of my restaurants on one page to manage them
Delete a Restaurant
- As a logged in user and owner of a restaurant, I want to be able to delete my restaurant(s).
- I would like the website to include a "Delete" button on the restaurant management page
/restaurants/current
next to each restaurant - When I click on the "Delete" button, I want the website to show me a window asking me to confirm that I want to delete the restaurant or to cancel my request to delete.
- When I click the "Yes (Delete)" button, I would like the website to show me a prompt that says "Delete Successful" with an "OK" button.
- When I click on the "OK" button, I would like the website to redirect me to the restaurant management page
/restaurants/current
and show me the restaurant is no longer in my list.
- When I click on the "OK" button, I would like the website to redirect me to the restaurant management page
- When I click the "No (Cancel)" button, I would like the window to close and simply stay on the page that I am currently viewing.
- When I click the "Yes (Delete)" button, I would like the website to show me a prompt that says "Delete Successful" with an "OK" button.
- I would like the website to include a "Delete" button on the restaurant management page
View All Reviews
Users should be able to view all reviews on a restaurant.
- As a user, whether logged in or logged out, I want to be able to view all reviews for a specific restaurant.
- When I am on the
/restaurants/:id
page, I want to see all the reviews written for that restaurant, allowing me to gather input and opinions from other users about their experiences.
Create a Review
Users should be able to create a review for a restaurant.
- As a logged-in user, I want to be able to create a review for a specific restaurant.
- When I am on the
/restaurants/:id
page, I can write and submit a review, enabling me to share my experience with the restaurant. However, if I am the owner of the restaurant, I cannot add a review.
Update a Review
Users should be able to update their reviews for a restaurant.
- As a logged-in user, I want to be able to edit my previously created review for a specific restaurant.
- When I am on the
/restaurants/:id
page, I can update my review to correct any errors or to reflect changes in my experience with the restaurant. Only I should be able to edit my review, as the creator, and no one else.
Delete a Review
Users should be able to delete their reviews from a restaurant.
- As a logged-in user, I want to be able to delete a review I previously created for a specific restaurant.
- When I am on the
/restaurants/:id page
, I can remove my review if I no longer want it publicly displayed because I've reconsidered my words.
Shopping Cart
Add Item to Cart
- As a user I want to add an item to my shopping cart
- So that I can purchase it later
Remove Item from Cart
- As a user I want to remove an item from my shopping cart
- So that I can update my cart if I change my mind
Update Item Quantity
- As a user I want to update the quantity of items in my shopping cart
- So that I can buy more or fewer items as needed
- I should be able to see if the item isn't available anymore.
- should be a max limit per item per user
View Cart Summary
- As a user I want to view a summary of my shopping cart
- So that I can see what items I have added and the total cost
Calculate Total Price
- As a user I want to see the total price of the items in my cart including taxes and shipping
- So that I know how much I will be charged
View Cart from Any Page
- As a user I want to access my shopping cart from any page in the application
- So that I can quickly review and modify my cart
View all Menu Items
- As a logged in or not logged in user, I want to be able to view all menu items for a restaurant on the restaurant's details page
/restaurants/:id
- So I can determine if the restaurant has what I want before signing up to place an order
- As a logged in or logged out user, I would like the website to include buttons to add items to my shopping cart
Add Menu Items
Users should be able to add menu items to their restaurants.
- As a logged-in user and the owner of a restaurant, I want to be able to add menu items within my restaurant portal.
- When I am on the
/restaurants/current/:id
page, I want the ability to add menu items so that I can showcase a wide variety of dishes available for delivery from my restaurant.
Update Menu Items (future feature)
Users should be able to update menu items under their restaurants.
- As a logged-in user and the owner of a restaurant, I want to be able to edit menu items within my restaurant portal.
- When I am on the
/restaurants/current/:id
page, I want the ability to update menu items so that I can adjust the availability of certain dishes, correct errors, or make changes to reflect the current offerings at my restaurant.
Remove Menu Items
Users should be able to delete menu items from their restaurants
- As a logged-in user and the owner of a restaurant, I want to be able to delete menu items within my restaurant portal.
- When I am on the
/restaurants/current/:id
page, I want the ability to delete menu items so that I can make changes to reflect the current offerings at my restaurant.