Wonderlust is a full-stack Airbnb clone web application built with Node.js, Express, MongoDB, and EJS. Users can register, create property listings, mark favorites, make bookings, and write reviews β all wrapped in a clean and responsive interface.
π Live Website: https://wonderlust-fsbk.onrender.com
- π User authentication (register, login, logout)
- π Create, edit, delete property listings
- πΌοΈ Upload images using Cloudinary
- π Add and remove listings from favorites
- π Booking system with date validation
- π Leave and manage reviews with ratings
- πΊοΈ Location display with Leaflet.js
- π¬ Flash messages for user actions
- π± Responsive design with EJS + Bootstrap
- π οΈ RESTful routing & MVC structure
- π¦ wonderlust/
- app.js (Main application entry point)
- config/ (Database & Cloudinary configuration files)
- controllers/ (Route handler logic (CRUD operations, etc.))
- init/ (Optional initial data seeding)
- middleware.js (Custom middleware (auth, flash, etc.))
- models/ (Mongoose models (User, Listing, Review))
- public/ (Static assets (CSS, client-side JS, images))
- routes/ (Express route definitions)
- utils/ (Helper functions and validators)
- views/ (EJS template files (layouts, partials, pages))
- schema.js (Joi schema validations)
- package.json (NPM dependencies and scripts)
- README.md (Project documentation)
| Category | Technologies Used |
|---|---|
| Frontend | HTML, EJS, CSS, Bootstrap |
| Backend | Node.js, Express.js |
| Database | MongoDB, Mongoose |
| Other Tools | Cloudinary, Leaflet.js, Toastify, Multer, Joi |
| Auth | Passport.js, Bcrypt.js |
| Deployment | Render, MongoDB Atlas |
git clone https://github.com/yourusername/wonderlust.git
cd wonderlust
npm installMONGO_URI=<your_mongodb_connection_string>
CLOUD_NAME=<your_cloudinary_name>
CLOUD_API_KEY=<your_api_key>
CLOUD_API_SECRET=<your_api_secret>
SECRET=<your_session_secret>
MAP_TOKEN=<your_map_token>
GMAIL_USER=<your_gmail_user>
GMAIL_PASS=<your_gmail_pass>npm run devThen open your browser and navigate to:
π http://localhost:8080"scripts": {
"start": "node app.js",
"dev": "nodemon app.js"
}This app is deployed on Render.
To deploy:
Push the code to GitHub
Create a Render Web Service from the repo
Add environment variables in Render dashboard
Connect to MongoDB Atlas and Cloudinary
Only registered users can:
Create/edit/delete their listings
Post and delete their reviews
Add/remove favorites
Non-logged-in users are redirected to /login
Add Google OAuth login
Improve mobile responsiveness
Add email notifications for bookings
Add pagination and filtering
Krutarth Kadia
- π§ krutarthkadia@gmail.com
- π GitHub: @Krutarth-2004
- π LinkedIn: https://www.linkedin.com/in/krutarth-kadia-76652931a/
Please consider giving it a β on GitHub! It helps others discover it π