📌 Wanderlust – Travel Listing Web Application
A full-stack, server-rendered travel accommodation listing platform built with Node.js, Express, MongoDB, Mongoose, and EJS. The application supports full CRUD operations, server-side validation, clean templating with EJS layouts, and fully structured RESTful routing.
🚀 Features
📄 Full CRUD Support — Create, Read, Update, Delete travel listings
🛡️ Server-Side Validation using Joi
🗄️ MongoDB + Mongoose Integration
🎨 Responsive UI using Bootstrap 5
🧩 EJS Layouts & Partials (Navbar, Footer, Boilerplate)
🌐 RESTful Routing with method-override support for PUT & DELETE
⚙️ Error Handling Architecture with custom ExpressError class
🔁 Async Wrapper Utility (wrapAsync) for clean route handlers
🧪 Sample Seed Data via /init scripts
📁 Organized project structure following MVC principles (lightweight MVC)
🏗️ Tech Stack
Frontend: EJS, Bootstrap 5, Custom CSS, Client-side Bootstrap validation Backend: Node.js, Express.js Database: MongoDB, Mongoose ODM Utilities: Joi Validation, Method Override, EJS-Mate Layout Engine
🛠️ Installation & Setup
-
Clone the Repository git clone https://github.com/your-username/wanderlust.git cd wanderlust
-
Install Dependencies npm install
-
Start MongoDB
Make sure MongoDB is running locally:
mongod
-
Seed the Database (optional) node init/index.js
-
Run the Server node app.js
Access the app at: 🔗 http://localhost:3000
Access the app at: 🔗 http://localhost:3000