Skip to content

User Stories

Gregory Isales edited this page Jun 11, 2022 · 8 revisions

User Stories

Session

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, first name, last name, 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 not allow me to submit until all fields pass validation.
    • So that I can fix the invalid fields and attempt to submit again.

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 not allow me to submit until all fields pass validation.
      • So that I can fix the invalid fields and attempt to submit again.

Demo User

As an unregistered and unauthorized user, I would like an easy to find and clearly labeled 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 the homepage.
    • So that I can easily log out to keep my information secure.

Restaurants

Create restaurant

As a registered and authenticated user, I want to be able to create a new restaurant on the site via a create restaurant form.

  • When I am on /restaurants/new page:
    • I would like to be able to enter all the restaurant information on a clearly laid out form.
    • I would like to be directed to the newly created restaurant's page upon successful completion.
    • So that I can see that the restaurant has been created.
  • When I click submit with invalid form entries:
    • I would like the website to inform me of the validations I failed to pass, and not allow me to submit until all fields pass validation.
    • So that I can fix the invalid fields and attempt to submit again.

Search restaurants

As an authenticated or unauthenticated user, I want to be able to search for restaurants.

  • When I search for a restaurant:
    • I would like to be able to input the name of a restaurant, location, or cuisine type and be redirected to a page with matching results.
    • I would like to be able to optionally specify a date, time, or party size.
      • So that I can see more specific results.
  • When I am on the homepage or search result page:
    • I would like to see a very large, prominently displayed search field.
      • So that I can easily see where I can find specific results.
  • When I click the search icon in the navigation bar:
    • I would like a large search modal to appear over the contents of the page I was currently.
    • I would enjoy if the content behind the modal was layered with transparent grey or some blur effect.
    • I would like the same search fields and controls as the other search options.
  • When I view the results of a search:
    • I would like to see a list of restaurants ordered by rating.
    • I would like to see the name, image, rating, location, and price range of each restaurant in the results.
    • I want to see a list of the closest upcoming available reservation slots for each result.
      • Time slots with available reservations that meet my criteria should be clickable.
        • So that I can go directly to the form to make that reservation.

View restaurant

As an authenticated or unauthenticated user, I would like to be able to view all of the details of one specific restaurant on its own page.

  • When I click on a preview card of a restaurant I want to be taken to a page with all the details for that restaurant.
    • I want to see an overview of all the information of the restaurant.
    • I want to see a form that allows me to find an available reservation.
      • It should allow me to specify party size, date, time in my search and show me the closest available time slots to my result.
    • I want to be able to see all the reviews for the restaurant at the bottom of the page.

Reservations

As a user, when I click on a reservation time slot button, I want to be taken to a page where I can put in my information to make a reservation for this time.

  • When I click on a reservation time slot button:
    • I want the reservation page I'm taken to to automatically have that restaurant and time slot information set.
    • I want to be able to enter the number of people in the party, and select an occasion or enter a special request.
    • As an unauthenticated user:
      • I want to be able to enter my first name, last name, phone number, and email before I make the reservation
      • If any of these fields do not pass validation I want to be notified of the failing fields before the page allows me to submit.
    • As an authenticated user:
      • I want to not see a first or last name box
        • So that the name from my account is automatically used for the reservation
        • Instead, I want to see my name displayed
      • I want the phone number and email fields to be filled in and uneditable if the values exist on my account.
  • When I successfully create a reservation, I would like to be given a unique link that allows me to leave a review for the visit.
    • The details of the reservation that I just created should be associated with this unique link.

Ratings/Reviews

As a user, I want to see the ratings of restaurants and read the reviews.

  • When I click reviews or scroll to the bottom on a restaurant page:
    • I want to see a summary of all the reviews, showing the overall rating statistics.
    • I want to see a list of all the reviews left for this restaurant.
      • I only want to see reviews that have written text from the reviewer.
      • It is not required, but I would like to be able to order the reviews by rating.

As a user, I want to be able to use unique review links to leave reviews for my reservations.

  • When I click a unique review link given to me after I create a reservation:
    • I should be taken to a form where I can fill in my ratings for each category, an optional text field for info, and what name the review should be displayed under.
    • I don't want to have to input anything about which restaurant or time I went
  • When I submit the review:
    • I want to be thanked for my review.
    • I want to be redirected to the restaurant reviews and have them sorted by new
      • So I can see my newly created review
    • I want the unique review link I used to be made invalid so another review can't be left.

Favorites

As a user, I want the ability to favorite restaurants that I enjoy.

  • When I am viewing a restaurant's page, there is a "Favorite" button on the top right of the page.
    • When I click on the "Favorite" button:
      • As an unauthenticated user:
        • I want to be redirected to the login page so that I am able to save my favorite restaurants.
      • As an authenticated user:
        • I want the button to change color and the text of the button to "Favorited" to indicated that I have favorited this restaurant.

As a registered and authenticated user, I want to be able to access a list of my favorite restaurants

  • When on any page:
    • I would like to be able to access my favorites via an option on a drop down menu in the navigation bar.
      • So that when clicked, I am redirected to a list of my favorite restaurants.

Clone this wiki locally