Skip to content

ashrafmohammad7/WanderLust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

15 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

WanderLust 🌍

Node.js Express.js MongoDB Render License

A full-stack Airbnb-inspired travel listing web application where users can explore destinations, create listings, upload property images, search locations, and manage authentication securely.


πŸš€ Live Demo

🌐 https://wanderlust-8eyf.onrender.com


✨ Features

  • πŸ” User Authentication (Signup/Login/Logout)
  • 🏑 Create, Edit & Delete Listings
  • πŸ“· Cloudinary Image Upload Support
  • ⭐ Add & Delete Reviews
  • πŸ”Ž Destination Search Functionality
  • πŸ—‚ Category-Based Filtering
  • πŸ“± Responsive User Interface
  • ☁ MongoDB Atlas Integration
  • πŸͺ Session & Cookie Authentication
  • ⚑ Flash Messages & Error Handling
  • πŸš€ Production Deployment on Render

πŸ“Έ Application Screenshots

🏠 Home Page

Displays all travel listings with category filters and search functionality.

Home Page


πŸ” User Login Page

Secure authentication using Passport.js.

Login Page


πŸ“ User Signup Page

New users can register securely.

Signup Page


βœ… Authenticated User Interface

Navbar dynamically changes after successful login.

Logged In


βž• Create New Listing

Users can create and upload new travel destinations.

Create Listing


πŸ—‚ Category Filtering

Listings can be filtered using categories.

Category Filter


πŸ™ Successfully Added Listing

Demonstrates successful listing creation with image upload.

New Listing


πŸ›  Tech Stack

Frontend

  • HTML5
  • CSS3
  • Bootstrap 5
  • EJS Templates

Backend

  • Node.js
  • Express.js

Database

  • MongoDB Atlas
  • Mongoose

Authentication

  • Passport.js
  • express-session

Cloud Storage

  • Cloudinary
  • Multer

Deployment

  • Render

πŸ— System Architecture

The following diagram represents the overall architecture and workflow of the WanderLust application.

WanderLust Architecture


πŸ“‚ Project Structure

WanderLust/
β”‚
β”œβ”€β”€ controllers/
β”œβ”€β”€ middleware/
β”œβ”€β”€ models/
β”œβ”€β”€ routes/
β”œβ”€β”€ screenshots/
β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ css/
β”‚   β”œβ”€β”€ js/
β”‚   └── images/
β”‚
β”œβ”€β”€ utils/
β”œβ”€β”€ views/
β”‚   β”œβ”€β”€ includes/
β”‚   β”œβ”€β”€ layouts/
β”‚   β”œβ”€β”€ listings/
β”‚   β”œβ”€β”€ users/
β”‚   └── error.ejs
β”‚
β”œβ”€β”€ cloudConfig.js
β”œβ”€β”€ middleware.js
β”œβ”€β”€ schema.js
β”œβ”€β”€ app.js
β”œβ”€β”€ package.json
└── README.md

βš™ Environment Variables

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

ATLASDB_URL=your_mongodb_connection_string

SECRET=your_secret_key

CLOUD_NAME=your_cloudinary_name
CLOUD_API_KEY=your_cloudinary_api_key
CLOUD_API_SECRET=your_cloudinary_api_secret

MAP_TOKEN=your_mapbox_token

πŸ“¦ Installation & Setup

Clone Repository

git clone https://github.com/ashrafmohammad7/WanderLust.git

Navigate to Project Folder

cd WanderLust

Install Dependencies

npm install

Run Application

npm start

🌐 Deployment

This application is deployed on Render.

πŸ”— https://wanderlust-8eyf.onrender.com


πŸ“š Learning Outcomes

  • Full Stack Web Development
  • RESTful Routing
  • Authentication & Authorization
  • MVC Architecture
  • MongoDB Integration
  • Cloudinary File Uploads
  • Deployment & Production Debugging
  • Session Management
  • Backend Validation & Error Handling

🧠 Future Improvements

  • ❀️ Wishlist Feature
  • πŸ’³ Payment Gateway Integration
  • πŸ“ Interactive Maps
  • πŸ“§ Email Verification
  • πŸŒ™ Dark Mode UI
  • πŸ“± Progressive Web App (PWA)

πŸ‘¨β€πŸ’» Author

Ashraf Mohammad


About

Full-stack Airbnb-inspired travel listing platform built with Node.js, Express.js, MongoDB Atlas, Passport.js, and Cloudinary.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors