Skip to content

SebastianDarie/airbnb-clone

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Airbnb Clone

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.

Demo

https://airbnbclone.rent/

Deployment

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.

Features

  • Search functionality with Places API
  • Radius and bounds geolocation
  • Stripe payments and refunds
  • Real time messaging
  • Multi category reviews

Run Locally

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

Screenshots

Home Page
Create Listing Page
Room Page

Tech Stack

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