Wanderlust is a web application that allows users to explore and book unique accommodations, including houses, rooms, castles, and camping spots. The project integrates a free map API (Google Maps) and provides user authentication, reviews, and category-based filtering.
hosted live -> https://wnaderlust-89l3.onrender.com/listings
- 🏠 Browse Listings: View various accommodations like houses, rooms, castles, and more.
- 🔍 Search & Filters: Search destinations and filter properties by categories (Trending, Mountains, Camping, etc.).
- 🗺 Map Integration: Displays property locations using Google Maps API.
- 📝 User Reviews: Users can leave reviews and ratings.
- 🔒 Authentication: Secure login and signup using Passport.js.
- 🛒 Tax Toggle: Users can toggle to see the total price including taxes.
- Backend: Node.js, Express.js, Mongoose
- Frontend: HTML, CSS, JavaScript, EJS (Embedded JavaScript)
- Authentication: Passport.js (Local Strategy)
- Session Management: Express-session
- Styling: Bootstrap & Font Awesome
- Deployment: Render (for backend) & Cloudinary (for image hosting) & MongoDB Atlas (for database)
git clone https://github.com/siddhantsaxena45/wanderlust.git
cd wanderlust
npm install
Create a .env
file and add the following:
CLOUD_NAME=your_cloudinary_name
CLOUD_API_KEY=your_cloudinary_api_key
CLOUD_API_SECRET=your_cloudinary_secret
MAP_API_KEY=your_google_maps_api_key
ATLASDB_URL=your_mongodb_connection_string
SECRET=your_secret_key
- Sign up at Cloudinary
- Go to Dashboard and get your Cloud Name, API Key, and API Secret
- Add these to the
.env
file as shown above - Install Cloudinary SDK:
npm install cloudinary
- Install MongoDB connection package:
npm i mongo-connect
- Sign up at https://render.com/
- Click New Project and connect your GitHub repo
- Select Node.js as runtime
- Add environment variables from
.env
in ** Environment Variables** - Set build and start commands:
- Build:
npm install
- Start:
node app.js
- Build:
- Deploy the service
airbnbclone/
│-- controllers/ # Controller functions for handling business logic
│-- init/ # Initialization scripts (DB connection, config, etc.)
│-- models/ # Mongoose schemas (User, Listing, Review)
│-- node_modules/ # Installed npm dependencies
│-- public/ # Static files (CSS, JS, Images)
│-- routes/ # Express route files (user, listings, reviews, etc.)
│-- screenshots/ # Screenshots for documentation or README
│-- utils/ # Helper functions (error handling, async wrappers)
│-- views/ # EJS templates (frontend views)
│-- .env # Environment variables file
│-- .gitignore # Git ignore file
│-- app.js # Main application file
│-- cloudconfig.js # Cloudinary or storage configurations
│-- middleware.js # Middleware functions
│-- package.json # Dependencies & scripts
│-- package-lock.json# Version lock file
│-- README.md # Project documentation
│-- schema.js # Additional database schema (if any)
This project is licensed under the MIT License.
Enjoy using Wanderlust! 🌍