Build a web application clone of AirBnB that allows users to list spaces they have available, and to hire spaces for the night.
By the end of the week, the goal is to be able to answer "yes" to the week's primary question:
- Can you, with only a specification to guide you, work as part of a team to build a web app?
- Sign up / Log in / Log out
- Add a property
- View a property
- Book a property - see pending and confirmed booking requests
- Message sent to owner account upon rental request
- Message sent to renter after rental request approval
Frontend
- HTML
- CSS
Backend
- Ruby
- Sinatra web framework
- PostgreSQL
Testing
- RSpec
- Capybara
git clone https://github.com/MattDawson2020/in_the_airbnb_tonight.git
bundle
rake setup
App is hosted on localhost:9292
rackup
rspec
rubocop
Headline
- Any signed-up user can list a new space.
- Users can list multiple spaces.
- Users should be able to name their space, provide a short description of the
- space, and a price per night.
- Users should be able to offer a range of dates where their space is available.
- Any signed-up user can request to hire any space for one night, and this should be approved by the user that owns that space.
- Nights for which a space has already been booked should not be available for users to book that space.
- Until a user has confirmed a booking request, that space can still be booked for that night.
Nice-to-haves
-
Users should receive an email whenever one of the following happens:
- They sign up
- They create a space
- They update a space
- A user requests to book their space
- They confirm a request
- They request to book a space
- Their request to book a space is confirmed
- Their request to book a space is denied
- A user requests to book their space
- Their request to book a space is confirmed
- Their request to book a space is denied
- A ‘chat’ functionality once a space has been booked, allowing users whose space-booking request has been confirmed to chat with the user that owns that space
- Basic payment implementation though Stripe.
Users should receive a text message to a provided number whenever one of the following happens:
- Users can sign up/in/out
- Signed up user can list a space
- Signed up user can request to rent a space
- Signed up user can approve or deny a booking request on their listing
- Signed up user can see their booking confirmed
- Basic styling
CREATE ACCOUNT
As a user
so I can manage my bookings
I can sign up to MBNB
As a user
so I can manage my account
I can sign in and out of MBNB
LISTING
As an owner
So I can advertise my property
I can add a property listing to MBNB
As an owner
So I can make my property listing distinctive
I can add descriptive attributes to a property listing
As an owner
So I can advertise all my properties
I can add multiple property listings to MBNB
RENTING
As a renter
So I can plan my accommodation
I can look at properties to hire
As a renter
So I can get accomodation
I can submit a request to hire a property
As an owner
So I can rent my property
I can view and approve rental requests
As a renter
So I know that my request has been approved
I can see a confirmation that I have been approved to book
CALENDAR / AVAILABILITY
As an owner
So I can display the availability of my property
I can display a range of dates for when the property is available
As a user
So that I can book available spaces
I can see when a property is already booked/unavailable
As an owner
So that my property isn’t double booked
Once a booking is confirmed my property becomes unavailable for those dates
As an owner
So that I can maximise my business opportunities
I can continue to advertise my property as available until booking is confirmed