ScareBnB is an AirBnB clone specifically designed for spooky spirits in search of the perfect haunted houses for their next ghostly getaways. Users can list and browse creepy accomodations, make reservations, and leave reviews for the places they've visited.
The app was created using a React frontend with Redux state managment, an Express backend, and a PostgreSQL database. Currently, ScareBnB has three full-CRUD features, as well as a search functionality, but I would like to work on additional features like user profiles and direct messaging in the future. I would also like to utilize S3 for uploading and storing images.
One aspect of this project I'm proud of is how I gave users a way to check availability for a particular listing and set of dates. When viewing a listing, a user can enter a start date and end date for their trip, and click a button to check availiability. This will cause the checkAvailability function to be excuted, sending a fetch request to a special route handler on the backend.
This route handler grabs the listing id from the parameters and the dates from the query string, then queries the database to check for any conflicting reservations at that listing that would overlap with the requested dates. If there are any conflicting reservations, it returns false. Otherwise, it returns true.
This app utilizes the following technologies:
- PostgreSQL
- Sequelize
- Express
- React
- Redux
When first visiting the app, users are greeted by a splash page that displays a call to action and a spooky image from Peter H at Pixabay. The splash page also has a profile button in the navigation bar, which opens a menu with options for signing up or logging in if one already has an account. About links can be found in the footer; one leads to this github repository and one leads to my LinkedIn page.
A user can click a button in the navigation bar to access the search haunts page, where they can browse through available haunted houses and filter by location and name.
When a user selects a haunted house from the search haunts page, they will be brought to that haunted house's detail page. Here, they can enter dates for their trip, check availability, book a trip, read a brief description and reviews, and add a review if they've previously stayed at the location.
A registered and logged-in user can view their past and future trips.
- A user can sign up for an account
- A registered user can log in
- A registered and logged-in user can log out
- A registered and logged-in user can create a haunt.
- A user can view haunts.
- A registered and logged-in user can edit his or her haunt.
- A registered and logged-in user can delete his or her haunt.
- A registered and logged-in user can create a spooking.
- A registered and logged-in user can view their past and future spookings.
- A registered and logged-in user can cancel a future spooking.
- A registered and logged-in user can add a review to a haunt they've previously visited.
- A user can read reviews.
- A registered and logged-in user can edit a review they've written.
- A registered and logged-in user can delete a review they've written.
- Search by location
- Search by name
- Create a profile
- View other users' profiles
- Update a profile
- Delete a profile
- Send a message
- Read messages
- Edit a message
- Delete a message