Skip to content

Built a feature-rich Airbnb clone from scratch using Next.js, delivering a seamless booking experience, advanced property search and dynamic pricing calculations.

Notifications You must be signed in to change notification settings

arjunan-k/Airbnb

Repository files navigation

AIRBNB

airbnb

Click here to download and view the application demo

Tech stack: NextJS, React, Tailwind, Prisma, MongoDB, NextAuth.

Key Features:

  • Booking / Reservation system
  • Guest reservation cancellation
  • Owner reservation cancellation
  • Creation and deletion of properties
  • Pricing calculation
  • Client form validation and handling using react-hook-form
  • Advanced search algorithm: Filters properties by category, date range, map location, guests, rooms, and bathrooms, considering existing reservations.
  • Favorites system
  • Shareable URL filters: Generates shareable URLs with filter criteria.
  • Credential authentication
  • Google authentication
  • Github authentication
  • Image upload using Cloudinary CDN
  • Server error handling using react-toast
  • Calendars with react-date-range
  • Page loading state
  • Page empty state
  • Tailwind design, animations and effects
  • Full responsiveness

Prerequisites

Node version 14.x

Cloning the repository

git clone https://github.com/arjunan-k/Airbnb.git

Install packages

npm i

Setup .env file

DATABASE_URL="";
NEXTAUTH_SECRET="NEXTAUTH_SECRET";
GITHUB_ID=0abc0
GITHUB_SECRET=0abc0
GOOGLE_CLIENT_ID=0abc0
GOOGLE_CLIENT_SECRET=0abc0
NEXT_PUBLIC_CLOUDINARY_CLOUD_NAME="";

Setup Prisma

npx prisma db push

Start the app

npm run dev

Available commands

Running commands with npm npm run [command]

command description
dev Starts a development instance of the app
build Build app which is optimized for production

Back to top

About

Built a feature-rich Airbnb clone from scratch using Next.js, delivering a seamless booking experience, advanced property search and dynamic pricing calculations.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages