Wander1ust

Main listings page with search bar

Main listings page with search bar

Overview

A full-stack Airbnb-inspired platform with authentication, cloud storage, reviews, and dynamic search — built end-to-end with Node.js and MVC architecture.

Key Features

  • Dynamic Property Discovery: Browse a diverse catalog of listings with a regex-powered search engine that queries across titles, locations, and countries for instant, relevant results.
  • Listing Creation & Cloud Image Uploads: Hosts can create detailed property listings and upload high-resolution photos directly to Cloudinary, with dynamic image transformations for optimized thumbnail previews.
"Create New Listing" form with image upload

"Create New Listing" form with image upload

  • Community Reviews & Ratings: Guests can leave detailed reviews and ratings on any property. Cascading deletion hooks automatically clean up associated reviews when a listing is removed, maintaining referential integrity.
Property detail page with reviews section

Property detail page with reviews section

  • Secure Authentication & Session Management: Persistent login/signup powered by Passport.js with sessions stored securely in MongoDB via connect-mongo, ensuring reliable user state across requests.
  • Multi-Level Authorization: Robust ownership & authorship verification middleware ensures users can only modify their own listings and reviews, preventing any unauthorized data manipulation.

How I Built It

  • Follows the MVC (Model-View-Controller) pattern for a clean separation of concerns.
  • Models: Mongoose schemas with relational references (User ↔ Listing ↔ Review) and post-delete hooks for cascading cleanup.
  • Controllers: Modular route handlers for listings, reviews, and user authentication — each in its own file.
  • Views: Server-rendered EJS templates with ejs-mate layouts and Bootstrap 5 for a responsive, polished UI.
  • Middleware: Custom layers for authentication checks, ownership verification, redirect URL persistence, and Joi schema validation.
  • Cloud Integration: Multer + Cloudinary pipeline for seamless image upload and storage.

Tech Stack

  • Backend: Node.js, Express.js (v5), Mongoose ODM
  • Database: MongoDB Atlas
  • Authentication: Passport.js, express-session, connect-mongo
  • Cloud Storage: Cloudinary, multer-storage-cloudinary
  • Frontend: EJS, ejs-mate, Bootstrap 5
  • Validation: Joi (client + server)
  • Deployment: Vercel

Why I Built It

Wander1ust was developed as a hands-on project to master real-world backend complexities. It pushed me beyond simple CRUD apps into implementing secure session-based authentication, integrating cloud media storage pipelines, managing complex relational data in a NoSQL database, and designing multi-layered authorization logic — skills that directly translate to production-grade development.