Skip to content

Wanderlust is a travel listing web app where users can explore destinations, create and manage their own listings, share reviews, and discover places through interactive maps.

Notifications You must be signed in to change notification settings

Prashasthaa/WanderLust

Repository files navigation

🌍 Wanderlust

A full-stack travel listing web application where users can explore destinations, create and manage listings, share reviews, and discover places through interactive maps.

🚀 Features

  • 🔐 User Authentication – Secure sign-up, login, and logout with Passport.js
  • 📝 Listings – Create, edit, and delete travel destination listings
  • Reviews – Leave reviews and ratings for destinations
  • 🔎 Search & Filter – Easily find listings based on preferences
  • 🗺 Map Integration – Interactive maps powered by Mapbox
  • 📸 Image Uploads – Upload and manage images with Multer + Cloudinary
  • 🎨 Responsive UI – Clean and mobile-friendly design with Bootstrap
  • Error Handling – Smooth user experience with proper error handling

🛠 Tech Stack

  • Backend: Node.js, Express.js
  • Frontend: EJS + Bootstrap
  • Database: MongoDB (Mongoose)
  • Authentication: Passport.js
  • Image Storage: Multer, Cloudinary
  • Maps: Mapbox
  • Architecture: MVC

📂 Project Structure

Wanderlust/
├── controllers/ # Handles controller logic
├── init/ # Application initialization scripts/config
├── models/ # Mongoose schemas/models
├── public/ # Static assets 
├── routes/ # Express route handlers
├── utils/ # Utility functions and middleware
├── views/ # EJS template files
├── app.js # Main server entry point
├── cloudConfig.js # Cloudinary configuration for image uploads
├── middleware.js # Custom middleware 
├── schema.js # Validation schemas 
├── package.json # Project dependencies & scripts
└── package-lock.json # Locked dependency versions

⚙️ Installation & Setup

  1. Clone the repo

    git clone https://github.com/Prashasthaa/WanderLust.git
    cd WanderLust
  2. Install dependencies

    npm install
  3. Create a .env file and add the following:

    CLOUDINARY_CLOUD_NAME=your_cloudinary_name
    CLOUDINARY_KEY=your_cloudinary_key
    CLOUDINARY_SECRET=your_cloudinary_secret
    MAPBOX_TOKEN=your_mapbox_token
    MONGO_URI=your_mongodb_connection
    SESSION_SECRET=your_session_secret
  4. Run the app

    nodemon app.js
  5. Visit:

    http://localhost:3000
    

🎓 Learning Outcomes

  • Full-stack development using Node.js, Express, and MongoDB
  • Image upload & storage with Multer + Cloudinary
  • Secure authentication with Passport.js & password hashing
  • MVC architecture for scalability
  • Error handling & validation for better UX
  • Mapbox integration for location-based features

🙏 Acknowledgements

Special thanks to Shradha Khapra for guidance throughout the learning journey.

🔗 Links

About

Wanderlust is a travel listing web app where users can explore destinations, create and manage their own listings, share reviews, and discover places through interactive maps.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published