Welcome to WanderLust, a full-featured Airbnb clone! This web application allows users to create accounts, list properties, and rent properties from others. It demonstrates modern web technologies while following the MVC (Model-View-Controller) design pattern.
✅ User Authentication: Secure user registration and login functionality.
✅ Property Listings: Users can create, edit, and delete their own listings.
✅ Reviews & Ratings: Users can leave feedback on properties they have visited.
✅ Map Integration: Interactive maps powered by Mapbox for property display.
✅ Image Uploads: Property images are stored using Cloudinary.
✅ Responsive Design: Fully mobile-friendly, styled with Bootstrap.
- Express.js - Web framework for Node.js
- MongoDB & MongoDB Atlas - Database for storing user and property data
- Passport.js - User authentication
- JOI - Schema validation
- Multer - File uploads
- cookie-parser & method-override
- dotenv - Environment variable management
- EJS - Template engine
- Bootstrap - Styling framework
- Mapbox - Interactive maps
- Cloudinary - Image hosting
- Render - Deployment platform
- Clone the repository:
git clone https://github.com/yourusername/WanderLust.git cd WanderLust - Install dependencies:
npm install
- Set up environment variables:
- Create a
.envfile and add the following:CLOUDINARY_CLOUD_NAME=your_cloud_name CLOUDINARY_API_KEY=your_api_key CLOUDINARY_API_SECRET=your_api_secret MAPBOX_TOKEN=your_mapbox_token
- Create a
- Run the server:
npm start
- Visit the application:
Open your browser and go to
http://localhost:3000
- Sign up or log in to your account.
- Create a property listing with images and details.
- Browse and book properties from other users.
- Leave reviews after staying at a property.
WanderLust/
│── models/ # Database schemas
│── routes/ # Application routes
│── views/ # EJS templates
│── public/ # Static files (CSS, JS, Images)
│── config/ # Configuration files
│── app.js # Main application file
│── .env # Environment variables
│── package.json # Dependencies and scripts
Contributions are welcome! If you'd like to improve WanderLust, follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature-branch - Make your changes and commit:
git commit -m 'Add new feature' - Push to the branch:
git push origin feature-branch - Open a Pull Request!
This project is licensed under the MIT License. Feel free to modify and use it as needed!
🚀 Happy Coding & Safe Travels!
Cloud Services:
Cloudinary for image storage
Render for deployment