User Stories - dhoffmann1/Rides GitHub Wiki

User Stories

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 first name, last name, 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 (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 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 Rides Cars and new search options.
        • So that I can easily log out to keep my information secure.

Cars

Create a new Car

  • As a logged in user, I want to be able to post a new Car for sale.
    • When I'm on the /users/:id/your-garage page:
      • I can submit a new Car using the new car form.
        • So that I can advertise my car for sale.

Viewing Cars

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

    • When I'm on the /cars/results page:
      • I can view the ten most recently posted cars for sale that match my search results/filters.
        • So that I can read and see a list of cars that might interest me.
  • As a logged in or logged out user, I want to be able to view a specific Car for sale and its associated Reviews.

    • When I'm on the /cars/:id page:
      • I can view the details of the Car, as well as the associated Reviews.
        • So that I can read the details of the Car, and add my own thoughts in the Reviews.
  • As a logged in user, I want to be able to view my Cars for sale.

    • When I'm on the /users/:id/your-garage page:
      • I can view the Cars that I have posted for sale.
        • So that I can keep track of the Cars I have available for sale.

Updating Cars

  • As a logged in user, I want to be able to edit my Cars for sale by clicking an Edit button associated with the Car.
    • When I'm on the /users/:id/your-garage pages:
      • I can click "Edit" to make permanent changes to Cars I have posted.
        • So that I can fix any errors I make in my Cars.

Deleting Cars

  • As a logged in user, I want to be able to delete my Cars by clicking a Delete button associated with the Car.
    • When I'm on the /users/:id/your-garage pages:
      • I can click "Delete" to permanently delete a Car I have posted.
        • So that when I realize I no longer want to sell that Car, I can easily remove it.

Create a new Image

  • As a logged in user, I want to be able to post a new Image for a Car I have available for sale.
    • When I'm on the /cars/:id/images page:
      • I can submit a new Image using the new images form.
        • So that I can add images for my cars that are for sale.

Viewing Images

  • As a logged in or logged out user, I want to be able to view a selection of Images for a car.
    • When I'm on the /cars/:id page:
      • I can view the Images that were posted for a particular car.
        • So that I can see Images of a Car that might interest me.

Deleting Images

  • As a logged in user, I want to be able to delete my Images by clicking a Delete button associated with the Images belonging to a particular Car for sale.
    • When I'm on the /cars/:id/images, or /users/:id/cars pages:
      • I can click "Delete" to permanently delete an Image I have posted.
        • So that when I realize I no longer want to have a particular Image for a car, I can easily remove it.

Reviews

Create a new Review

  • As a logged in user, I want to be able to post a new Review.
    • When I'm on the /cars/:id/reviews page:
      • I can submit a new Review using the new review form.
        • So that I can review cars that are for sale.

Viewing 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 car.
    • When I'm on the /cars/:id/reviews page:
      • I can view the ten most recently posted Reviews that match the car.
        • So that I can read and see a list of Reviews that might interest me.

Updating Reviews

  • As a logged in user, I want to be able to edit my Reviews by clicking an Edit button associated with the Review.
    • When I'm on the /cars/:id/reviews page:
      • I can click "Edit" to make permanent changes to Reviews I have posted.
        • So that I can fix any errors I make in my Reviews.

Deleting Reviews

  • As a logged in user, I want to be able to delete my Reviews by clicking a Delete button associated with the Review.
    • When I'm on the /cars/:id/reviews page:
      • I can click "Delete" to permanently delete a Review I have posted.
        • So that when I realize I no longer want to leave a Review for a car, I can easily remove it.

Bonus Features Below

Extra Car Features

Create Extra Features to Cars

  • As a logged in user, I want to be able to add extra features to a car I have for sale.
    • When I'm on the /cars/:id/extra-features page:
      • I can add extra features to my car using the Extra Features form.
        • So that I can add extra features to the car I have for sale.

Viewing Extra Features on Cars

  • As a logged in or logged out user, I want to be able to view the extra features on a car.
    • When I'm on the /cars/:id/ page:
      • I can view the extra features of a car I am interested in.
        • So that I can decide if I am still interested in this particular car.

Deleting Extra Features from Cars

  • As a logged in user, I want to be able to remove extra features from a car I have for sale.
    • When I'm on the /cars/:id/extra-features page:
      • I can remove extra features from my car using the Extra Features form.
        • So that I can remove extra features from the car I have for sale.

Saved Cars

Create a new Saved Car

  • As a logged in user, I want to be able to save a Car I am interested in purchasing.
    • When I'm on the /cars/:id page:
      • I can save a new Car easily by clicking a Save button.
        • So that I can view it later when I am ready to purchase.

Viewing Saved Cars

  • As a logged in user, I want to be able to view my selection of Saved Cars.
    • When I'm on the /users/:id/saved-cars page:
      • I can view the Cars I have Saved.
        • So that I can do further research on them and have quick access to their details pages.

Deleting Saved Cars

  • As a logged in user, I want to be able to remove a Car from my selection of Saved Cars.
    • When I'm on the /users/:id/saved-cars page:
      • I can click "Remove" to permanently remove a Car I have previously Saved.
        • So that when I realize I am no longer interested in a particular Car, I can easily remove it.

Contact Seller

Contact Seller

  • As a logged in user, I want to be able to contact the Seller of a Car I am interested in purchasing.
    • When I'm on the /cars/:id page:
      • I can contact a seller of a Car easily by filling out a short form and clicking a "Check Availability" button.
        • So that I can express my interest in purchasing the Car and be contacted by the Seller.