Skip to content

WanderLust Full-stack Express & MongoDB web app with authentication and CRUD features.

Notifications You must be signed in to change notification settings

Sarfarazsfz/WanderLust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌍 WanderLust β€” Full-Stack Travel Listing Web Application

WanderLust is a full-stack travel and accommodation listing platform inspired by modern rental and travel websites. The application allows users to explore destinations, create listings, write reviews, and manage content securely. It is built using Node.js, Express, MongoDB, and EJS, following the MVC architecture.

This project demonstrates strong backend fundamentals, authentication, authorization, and CRUD operations, making it ideal for internship applications and academic projects.


πŸš€ Live Demo

Deployed Application: https://wanderlust-xz5o.onrender.com


✨ Features

  • πŸ” User authentication & authorization (Login / Signup)
  • 🏠 Create, edit, and delete travel listings
  • πŸ“ Add and manage reviews for listings
  • πŸ‘€ User-specific content control (only owners can edit/delete)
  • πŸ“Έ Image upload support with cloud configuration
  • πŸ›‘οΈ Secure routes using middleware
  • πŸ“¦ MVC architecture for clean code structure
  • 🌐 Server-side rendered views using EJS

πŸ“Έ Screenshots

Home Page

Home Page

Listing Details

Listing Page

Add New Listing

Add Listing

Reviews Section

Reviews

Login Page

Login


πŸ› οΈ Tech Stack

Frontend (Server-Side Rendering)

  • EJS (Embedded JavaScript Templates)
  • HTML5
  • CSS3
  • Bootstrap

Backend

  • Node.js
  • Express.js
  • MongoDB & Mongoose
  • Passport.js (Authentication)
  • Express-Session
  • Method-Override

Database

  • MongoDB Atlas (Cloud Database)

Deployment

  • Render

πŸ“ Project Structure

wanderlust/
β”‚
β”œβ”€β”€ controllers/          # Business logic and route handlers
β”œβ”€β”€ init/                 # Database initialization scripts
β”œβ”€β”€ models/               # MongoDB schemas and models
β”œβ”€β”€ public/               # Static assets (CSS, JS, images)
β”œβ”€β”€ routes/               # Express route definitions
β”œβ”€β”€ utils/                # Utility functions and helpers
β”œβ”€β”€ views/                # EJS templates
β”œβ”€β”€ screenshots/          # Application screenshots
β”‚   β”œβ”€β”€ home.png
β”‚   β”œβ”€β”€ listing.png
β”‚   β”œβ”€β”€ add-listing.png
β”‚   β”œβ”€β”€ reviews.png
β”‚   └── login.png
β”‚
β”œβ”€β”€ app.js                # Main application entry point
β”œβ”€β”€ cloudConfig.js        # Cloudinary configuration
β”œβ”€β”€ middleware.js         # Custom middleware functions
β”œβ”€β”€ schema.js             # Validation schemas
β”œβ”€β”€ package.json          # Project dependencies
β”œβ”€β”€ package-lock.json     # Dependency lock file
└── README.md             # Project documentation

βš™οΈ How to Run Locally

1️⃣ Clone the Repository

git clone https://github.com/Sarfarazsfz/wanderlust.git
cd wanderlust

2️⃣ Install Dependencies

npm install

3️⃣ Environment Variables

Create a .env file in the root directory:

CLOUD_NAME=your_cloudinary_name
CLOUD_API_KEY=your_cloudinary_api_key
CLOUD_API_SECRET=your_cloudinary_api_secret
SESSION_SECRET=your_session_secret
MONGO_URI=your_mongodb_atlas_uri

4️⃣ Run the Application

npm start

Server will run at: http://localhost:3000


πŸ—οΈ Architecture Overview

WanderLust follows the MVC (Model-View-Controller) architecture pattern:

Model

  • User authentication and profile management
  • Listing creation and management
  • Review system with ratings

View

  • EJS templating engine for dynamic content
  • Responsive Bootstrap UI components
  • Server-side rendered pages

Controller

  • Route handlers for listings, reviews, and users
  • Business logic separation
  • Middleware integration for security

πŸ” Security Highlights

  • βœ… Authentication using Passport.js
  • βœ… Authorization checks for protected actions
  • βœ… Secure session management
  • βœ… Data validation using schemas
  • βœ… Middleware-protected routes
  • βœ… Password hashing and encryption
  • βœ… CSRF protection
  • βœ… Input sanitization

🎯 Use Cases

  • Travel & accommodation listing platform
  • CRUD-based full-stack project demo
  • Backend-focused internship project
  • Academic / college submission
  • Portfolio project for web development roles

πŸš€ Future Enhancements

  • Add search and filter functionality
  • Implement booking system
  • Add payment gateway integration
  • Enable map integration for location visualization
  • Add email notifications
  • Implement user profile pages
  • Add favorites/wishlist feature
  • Enable social sharing options

πŸ“š Key Learnings

This project demonstrates proficiency in:

  • RESTful API design
  • Database modeling and relationships
  • Authentication and authorization patterns
  • MVC architecture implementation
  • Cloud storage integration
  • Deployment and DevOps basics

πŸ“ License

This project is open source and available under the MIT License.


πŸ“ž Contact

Developer: MD SARFARAZ ALAM


❀️ Acknowledgements

Inspired by modern travel platforms and built to strengthen full-stack web development fundamentals.

WanderLust β€” Explore destinations, share experiences, and travel smarter. 🌍


⭐ Show Your Support

If you found this project helpful, please consider giving it a ⭐ on GitHub!

About

WanderLust Full-stack Express & MongoDB web app with authentication and CRUD features.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published