https://github.com/arjunan-k/airbnb
Built a feature-rich Airbnb clone from scratch using Next.js, delivering a seamless booking experience, advanced property search and dynamic pricing calculations.
https://github.com/arjunan-k/airbnb
mongodb nextauth nextjs prisma react tailwind typescript
Last synced: 2 months ago
JSON representation
Built a feature-rich Airbnb clone from scratch using Next.js, delivering a seamless booking experience, advanced property search and dynamic pricing calculations.
- Host: GitHub
- URL: https://github.com/arjunan-k/airbnb
- Owner: arjunan-k
- Created: 2023-07-24T17:30:59.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-09-10T11:50:34.000Z (over 1 year ago)
- Last Synced: 2025-01-09T11:09:17.850Z (4 months ago)
- Topics: mongodb, nextauth, nextjs, prisma, react, tailwind, typescript
- Language: TypeScript
- Homepage: https://airbnbe.vercel.app/
- Size: 27.6 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
Awesome Lists containing this project
README
#
AIRBNB

[Click here to download and view the application demo](./public/Demo.mp4)
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
```shell
git clone https://github.com/arjunan-k/Airbnb.git
```### Install packages
```shell
npm i
```### Setup .env file
```js
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
```shell
npx prisma db push
```### Start the app
```shell
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 |