Skip to content

Krutarth-2004/Wonderlust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

23 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🏑 Wonderlust - Airbnb Clone

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


🌟 Features

  • πŸ” 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

🧱 Project 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)

πŸ’» Tech Stack

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

βš™οΈ Installation

πŸ“₯ Clone and Install Dependencies

git clone https://github.com/yourusername/wonderlust.git
cd wonderlust
npm install

πŸ§ͺ Environment Variables

Create a .env file in the root directory and add the following:

MONGO_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>

πŸš€ Run the App

npm run dev

Then open your browser and navigate to:

πŸ“ http://localhost:8080

πŸ”§ Available Scripts

"scripts": {
  "start": "node app.js",
  "dev": "nodemon app.js"
}

🌐 Deployment

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


πŸ” Authentication & Authorization

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


🚧 TODO / Future Enhancements

Add Google OAuth login

Improve mobile responsiveness

Add email notifications for bookings

Add pagination and filtering


πŸ™‹β€β™‚οΈ Author

Krutarth Kadia


⭐️ If you like this project...

Please consider giving it a ⭐ on GitHub! It helps others discover it πŸ™Œ

About

🏠 Full-stack Airbnb-style rental web app built with Node.js, Express, MongoDB, and EJS templating – allows users to list, explore, favorite, and book properties.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors