As the name implies the app integrates Airbnb's core functionality like browsing listings based on location or map movement, reservations with payments and refunds, category-based ratings with reviews, messaging between hosts and guests.
To deploy this project run
This assumes you have the Vercel CLI installed
cd packages/client
vercel --prod
And just follow the instructions to set up a new project
For the server this assumes you have Docker installed and maybe have a debit/credit card around
cd packages/server
npm run build
Then edit the deploy.sh
file and change sebastian2772 with your Docker Hub username as well as airbnb-clone with your Docker repository name
Make sure you are in the server directory, now run sudo ./deploy.sh
.
You may need to chmod the file.
Get yourself a VPS from either DigitalOcean, AWS, Google Cloud, Azure
Install Dokku on it follow https://dokku.com/docs/getting-started/installation/ for reference
Install the Dokku PostgreSQL and Redis add-ons you can find them on GitHub
Then create a database, cache, app, link them together
After you are done with those run the following
dokku git:from-image api sebastian2772/airbnb-clone:$VERSION
Replace api with your app name as well as the docker repo and add the version at the end.
- Search functionality with Places API
- Radius and bounds geolocation
- Stripe payments and refunds
- Real time messaging
- Multi category reviews
For the server you need the .env
and a Postgres db plus Redis server running
For the frontend you need a .env.local
file
Clone the project
git clone https://github.com/SebastianDarie/airbnb-clone.git
Go to the project directory
cd airbnb-clone
Install dependencies
yarn
Start the server
cd packages/server
yarn build
yarn dev
Start the frontend
cd packages/client
yarn dev
Client: Next.js, Apollo Client, Sass, Zustand, React Hook Form, Stripe.js, Google Maps Api
Server: Node, Express, Apollo Server, GraphQL, Redis, PostgreSQL, Stripe, TypeGraphQL, TypeORM, AWS S3