Skip to content

shrria/airbnb-clone

Repository files navigation

Airbnb Clone

A full-stack Airbnb clone built with Next.js 14, TypeScript, Prisma, MongoDB, and Tailwind CSS. This project replicates core Airbnb features including property listings, reservations, user authentication, and more.

Features

  • 🔐 Authentication

    • Email/password authentication
    • OAuth integration
    • Protected routes and API endpoints
  • 🏠 Property Management

    • Create and manage property listings
    • Upload property images
    • Set property details (rooms, bathrooms, guests)
    • Location selection with map integration
    • Category-based property organization
  • 🔍 Search & Filtering

    • Location-based search
    • Date range selection
    • Guest count filtering
    • Room and bathroom requirements
    • Category filtering
  • 📅 Reservation System

    • Calendar-based booking
    • Date availability checking
    • Reservation management
    • Booking cancellation
  • ❤️ Favorites

    • Save favorite properties
    • Quick access to saved listings
  • 🗺️ Maps Integration

    • Interactive maps for property locations
    • Location selection during property creation

Tech Stack

  • Frontend

    • Next.js 14 (App Router)
    • TypeScript
    • Tailwind CSS
    • React
    • Zustand (State Management)
  • Backend

    • Next.js API Routes
    • Prisma (ORM)
    • MongoDB
    • NextAuth

Getting Started

  1. Clone the repository:
git clone https://github.com/yourusername/airbnb-clone.git
cd airbnb-clone
  1. Install dependencies:
pnpm install
  1. Set up environment variables: Create a .env file in the root directory with the following variables:
DATABASE_URL="your_mongodb_connection_string"
NEXTAUTH_SECRET="your_nextauth_secret"
NEXTAUTH_URL="http://localhost:3000"
  1. Build & Start server:
pnpm build
pnpm start

Open http://localhost:3000 with your browser to see the result.

Project Structure

app/
├── actions/         # Server actions
├── api/            # API routes
├── components/     # React components
├── hooks/          # Custom React hooks
├── libs/           # Utility functions
├── providers/      # Context providers
└── types/          # TypeScript types

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages