- 🔐 Secure user authentication with Passport.js
- 🧾 Form validation using Joi
- ☁️ Cloud image uploads via Cloudinary
- 💬 Flash messages for real-time UI feedback
- 📦 Modular MVC architecture: Controllers, Models, Routes, Views
- 🌍 Dynamic pages rendered with EJS
- ⚙️ Deploy-ready with Render
Wanderlust/
│
├── controllers/ # Logic for each route
├── models/ # Mongoose schemas
├── public/ # Static assets (CSS, JS, images)
├── screenshots/ # Screenshots for readme
├── routes/ # Express route files
├── utils/ # Helper functions
├── views/ # EJS templates
│
├── app.js # Main Express server
├── cloudConfig.js # Cloudinary setup
├── middleware.js # Auth & error handlers
├── schema.js # Joi validation schemas
├── .env # Environment variables
└── README.md # You're here!git clone https://github.com/coderajawat/WANDERLUST.git
cd Wanderlustnpm installCreate a .env file in the root folder:
CLOUD_NAME=your_cloudinary_cloud_name
CLOUD_API_KEY=your_cloudinary_api_key
CLOUD_API_SECRET=your_cloudinary_api_secret
MAP_TOKEN=your_mapbox_token
ATLASDB_URL=your_mongodb_connection_string
SECRET=your_session_secret
DEFAULTUSER_PASSWORD=your_default_user_passwordnode app.jsGo to 👉 http://localhost:8080/listings
- MVC pattern with Express.js
- EJS templating engine
- Passport.js authentication
- MongoDB with Mongoose ORM
- Cloudinary integration for image uploads
- Flash messaging system
- Middleware-based validation (Joi)
- RESTful routing and modular structure
Khushi Rajawat
🌐 LinkedIn
📫 Email: khushirajawat755@gmail.com
This project is licensed under the MIT License.
Feel free to use, fork, and contribute 💙
⭐ If you found this project helpful or inspiring, please give it a star!

