USER STORIES - TheBabblingBrin/capstone-bnb 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 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 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.
- 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).
- 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.
- I can click on a Demo User button to log me in and allow me access as a normal user.
- 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 recent Spots.
- So that I can easily log out to keep my information secure.
- I can log out of my account and be redirected to a page displaying recent Spots.
- While on any page of the site:
Spots
Create a Spot
- As a logged in user, I want to be able to create spots.
- When I'm on the
/host
page:- I can create a new spot with a name, description, and pictures.
- So that I can host my spot for other users to reserve.
- I can create a new spot with a name, description, and pictures.
- When I'm on the
Viewing Spots
-
As a logged in user, I want to be able to view a selection of the spots that are available for reservation.
- When I'm on the
/
page:- I can view all the available spots.
- So that I can book a spot to stay.
- I can view all the available spots.
- When I'm on the
/hosting/spots
page:- I can view all the spots I am hosting.
- So that I can view all spots I have created.
- I can view all the spots I am hosting.
- When I'm on the
-
As a logged in user, I want to be able to view a specific spot.
- When I'm on the
/spots/:spotId
page:- I can view the content of a spot and available reservation dates.
- So that I can view the details of a spot to decide if I would like to book it.
- I can view the content of a spot and available reservation dates.
- When I'm on the
Updating Spots
- As a logged in user, I can update a spot that I am an owner of.
- When I'm on the
/spots/:spotid
or/hostings/spots
page:- I can click "Edit" to make changes to the spot.
- So that I can fix any errors I make in my spot.
- I can click "Edit" to make changes to the spot.
- When I'm on the
Deleting Spots
- As a logged in user, I want to be able to delete my spot by clicking a Delete button associated with the spot.
- When I'm on the
/spots/:spotId
,/hosting/spots
pages:- I can click "Delete" to permanently delete a spot I have created.
- When I'm on the
Bookings
Create a booking
- As a logged in user, I want to be able to book a spot.
- When I'm on the
/spots/:spotId
page:- I can create a new booking with specific dates.
- So that I can stay at the designated spot.
- I can create a new booking with specific dates.
- When I'm on the
Viewing a booking
-
As a logged in user, I want to be able to view a selection of the bookings I have made.
- When I'm on the
/user/bookings
page:- I can view all the spots I have booked.
- So that I can read and interact with my bookings.
- I can view all the spots I have booked.
- When I'm on the
-
As a logged in user, I want to be able to view a specific booking and its associated data.
- When I'm on the
/users/bookings/:bookingId
page:- I can view the content of a booking, as well as the associated dates.
- So that I can read and interact with my booking.
- I can view the content of a booking, as well as the associated dates.
- When I'm on the
Updating a Booking
- As a logged in user, I can update a bookings dates.
- When I'm on the
/users/bookings/:bookingId
page:- I can click "Edit" to make changes to the dates.
- So that I can reschedule my booking.
- I can click "Edit" to make changes to the dates.
- When I'm on the
Deleting a Booking
- As a logged in user, I want to be able to delete my booking by clicking a Delete button associated with the booking.
- When I'm on the
/users/bookings/:bookingId
pages:- I can click "Delete" to permanently delete a booking l I have created.
- When I'm on the