Skip to content

vishxlkr/Wanderlust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

25 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌍 Wanderlust β€” Travel Listing Application

Wanderlust is a full‑stack travel listing web application inspired by Airbnb. It enables users to create, browse, and manage travel destinations with secure authentication, image uploads, and modern UI templates.

🧰 Tech Stack

  • Backend: Node.js, Express.js, MongoDB (Mongoose)
  • Templating: EJS + ejs-mate
  • Authentication: Passport.js (Local Strategy), Sessions
  • Image Uploads: Multer + Cloudinary
  • Validation: Joi
  • Styling: Bootstrap / Custom CSS
  • Utilities: Method-Override, Connect-Flash, Dotenv

πŸ“¦ Features

  • βœ… User Registration & Login with Passport.js
  • βœ… Create, Update & Delete travel listings
  • βœ… Upload multiple images via Cloudinary
  • βœ… Server-side validation with Joi
  • βœ… Flash messages & error handling
  • βœ… Session-based authentication with MongoDB store
  • βœ… Fully functional CRUD routes
  • βœ… Mobile-responsive EJS templates

πŸ“ Folder Structure

wanderlust/
β”œβ”€β”€ app.js                      # Main server file
β”œβ”€β”€ package.json                # Dependencies & scripts
β”œβ”€β”€ .env                        # Environment variables (not committed)
β”œβ”€β”€ /models                     # Mongoose schemas
β”œβ”€β”€ /routes                     # Express routes
β”œβ”€β”€ /views                      # EJS templates
β”œβ”€β”€ /public                     # Static assets (CSS, JS, images)
└── /utils                      # Utility functions

Tip: If your tree doesn’t render in some viewers, ensure the block is fenced with triple backticks and a language hint like text.


πŸ” Environment Variables

Create a .env file in the project root with the following keys:

CLOUD_NAME=your_cloudinary_name
CLOUD_API_KEY=your_cloudinary_api_key
CLOUD_API_SECRET=your_cloudinary_secret
MONGODB_URI=your_mongodb_connection_uri
SECRET=your_session_secret

πŸ› οΈ Getting Started Locally

1) Clone the Repo

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

2) Install Dependencies

npm install

3) Run the App

npm run server

App will be available at: http://localhost:3000

Prerequisites: Node.js (compatible with the version specified in package.json), a running MongoDB instance (or Atlas), and a Cloudinary account.


πŸ“œ API / Routes Overview

GET     /                  # Home page
GET     /listings          # Show all listings
POST    /listings          # Create new listing
GET     /listings/:id      # Show single listing
PUT     /listings/:id      # Update listing
DELETE  /listings/:id      # Delete listing

GET     /register          # User registration form
POST    /register          # Register new user

GET     /login             # Login form
POST    /login             # Login user
GET     /logout            # Logout user

πŸ“¦ package.json

{
   "engines": {
      "node": "22.14.0"
   },
   "name": "wanderlust",
   "version": "1.0.0",
   "description": "A travel listing web application built with Node.js, Express, and MongoDB.",
   "main": "app.js",
   "scripts": {
      "test": "echo \"Error: no test specified\" && exit 1",
      "server": "node app.js"
   },
   "keywords": ["travel", "express", "nodejs", "mongodb", "passport"],
   "author": "Vishal Kumar",
   "license": "ISC",
   "type": "commonjs",
   "dependencies": {
      "cloudinary": "^1.41.3",
      "connect-flash": "^0.1.1",
      "connect-mongo": "^5.1.0",
      "dotenv": "^17.2.1",
      "ejs": "^3.1.10",
      "ejs-mate": "^4.0.0",
      "express": "^4.18.2",
      "express-session": "^1.18.2",
      "joi": "^17.13.3",
      "method-override": "^3.0.0",
      "mongoose": "^8.14.3",
      "multer": "^2.0.2",
      "multer-storage-cloudinary": "^4.0.0",
      "passport": "^0.7.0",
      "passport-local": "^1.0.0",
      "passport-local-mongoose": "^8.0.0"
   }
}

πŸ“· Screenshots

Screenshot 2025-08-23 130408 Screenshot 2025-08-23 130457 Screenshot 2025-08-23 130543 Screenshot 2025-08-23 130346 Screenshot 2025-08-23 130607 Screenshot 2025-08-23 130633 Screenshot 2025-08-23 130641

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

Vishal Kumar GitHub: https://github.com/vishxlkr


πŸͺͺ License

This project is licensed under the ISC License.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors