Wanderlust is a full-stack web application that allows users to list, discover, and book unique travel accommodations worldwide. Built with a focus on premium aesthetics and seamless user experience, it serves as a comprehensive clone of platforms like Airbnb.
- Listing Management: Users can create, edit, and delete their own travel listings.
- Review System: Integrated review and rating system for each listing.
- User Authentication: Secure signup and login functionality using Passport.js.
- Messaging System: Real-time messaging simulation between guests and hosts with automated response logic.
- Wishlist: Users can save their favorite listings for future trips.
- Map Integration: Visualizing listing locations using Mapbox SDK.
- Image Uploads: Cloud-based image storage integrated with Cloudinary.
- Responsive Design: Fully responsive UI with a modern glassmorphism aesthetic.
- Frontend: EJS (Embedded JavaScript templates), CSS3 (Modern Styling), JavaScript.
- Backend: Node.js, Express.js.
- Database: MongoDB (Atlas) with Mongoose ODM.
- Authentication: Passport.js with Local Strategy.
- Storage: Cloudinary for high-quality image management.
- Maps: Mapbox SDK for location-based services.
- Node.js (v18 or higher)
- MongoDB account (Atlas or Local)
- Cloudinary account
- Mapbox account
-
Clone the repository:
git clone https://github.com/jadhavkrushna/Airbnb_project.git cd Airbnb_project -
Install dependencies:
npm install
-
Configure Environment Variables: Create a
.envfile in the root directory and add the following keys:ATLASBD_URL=your_mongodb_atlas_url CLOUD_NAME=your_cloudinary_name CLOUD_API_KEY=your_cloudinary_api_key CLOUD_API_SECRET=your_cloudinary_api_secret MAP_TOKEN=your_mapbox_token SECRET=your_session_secret
-
Run the application:
# Development mode npm run dev # Production mode npm start
-
Access the app: Open your browser and navigate to
http://localhost:8080.
app.js: Main entry point and server configuration.models/: Mongoose schemas for Listings, Reviews, Users, and Messages.routes/: Express routers for different feature modules.controllers/: Logic for handling requests and responses.views/: EJS templates for the frontend.public/: Static assets (CSS, JS, Images).
This project is licensed under the MIT License.