A modern full-stack travel booking platform built with the MERN stack. This application delivers a seamless user experience for exploring and booking accommodations, complete with real-time chat support and interactive features.
- Project Overview
- Key Features
- Tech Stack
- Getting Started
- Usage
- Folder Structure
- Features in Detail
- Screenshots
- Future Enhancements
- Contributing
- License
- Smart Search System: Location-based property search with interactive filters
- Real-time Chat Support: WebSocket-powered FAQ bot for instant assistance
- User Authentication: Secure JWT-based authentication system
- Interactive Booking: Streamlined booking process with date selection
- Responsive Design: Optimized experience across all devices
- React + Vite for lightning-fast development
- Material UI for polished components
- WebSocket integration for real-time features
- Environment-based configuration
- Node.js + Express for robust API handling
- MongoDB for flexible data storage
- WebSocket server for chat functionality
- JWT for secure authentication
- Node.js
- MongoDB
- npm or yarn
-
Clone the repository:
git clone https://github.com/muzammil-13/airbnb-clone.git cd airbnb-clone
-
Set up the backend:
cd backend npm install npm run dev
-
Set up the frontend:
cd frontend npm install npm run dev
-
Configure environment variables:
- Create a
.env
file in thefrontend
directory and add:VITE_API_URL=http://localhost:3000
- Create a
.env
file in thebackend
directory and add:PORT=3000 MONGO_URI=mongodb://localhost:27017/ JWT_SECRET=your_jwt_secret CLIENT_URL=http://localhost:5173
- Create a
-
Run the application:
- Start the backend:
cd backend npm run dev
- Start the frontend:
cd frontend npm run dev
- Start the backend:
-
Open the application in your browser at
http://localhost:5173
.
- Sign Up: Create a new account.
- Log In: Access your account using email and password.
- Explore Properties: Browse properties and apply filters.
- Book Properties: Reserve properties for specific dates.
- View Profile: Check your booking history and manage your details.
project/
├── backend/
│ ├── config/
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ ├── services/
│ ├── server.js
│ └── package.json
├── frontend/
│ ├── public/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ ├── styles/
│ │ ├── App.js
│ │ ├── index.js
│ │ └── package.json
├── .gitignore
└── README.md
- Location-based filtering
- Price range selection
- Date availability checking
- Interactive map integration
- Instant response FAQ bot
- Keyword suggestions
- Persistent chat history
- Automatic reconnection
- Interactive calendar
- Real-time availability
- Instant confirmation
- Booking management
[Demo: Logo]
[Demo: Landing page]
[Demo: Authentication]
Login:
Signup:
- Payment Integration: Add a payment gateway for bookings.
- Property Reviews: Allow users to leave reviews and ratings.
- Admin Dashboard: Manage property listings and bookings.
- Host Dashboard: Manage property listings and bookings.
- Advanced Search Filters: Add more filters for property search.
- Mobile Applications: Develop mobile apps for iOS and Android.
[Demo: Tech Architecture with Future implementations]
Contributions are welcome! Feel free to submit pull requests or open issues for improvements.
This project is licensed under the MIT License. See the LICENSE file for details.