Skip to content

Repository files navigation

Wanderlust

Airbnb-Inspired Full Stack Listing Platform


Project Overview

Wanderlust is a full stack web application inspired by Airbnb where users can explore, create, edit, and manage property listings from around the world.

The project was built to strengthen my understanding of backend architecture, authentication systems, database relationships, RESTful routing, deployment workflows, and real-world application structure.


Tech Stack

Backend

  • Node.js
  • Express.js

Built using MVC architecture with RESTful routing principles.


Database

  • MongoDB
  • Mongoose

Used for NoSQL data storage, schema modeling, and validation.


Frontend & Templating

  • EJS
  • EJS-Mate

Server-side rendering with reusable layouts and dynamic views.


Authentication & Sessions

  • Passport.js
  • Express-Session
  • connect-mongo

Implemented local authentication strategy with persistent and encrypted session storage inside MongoDB.

Features include:

  • User signup
  • Login / Logout
  • Session persistence
  • Authorization middleware

File Upload & Media Handling

  • Multer
  • Cloudinary API

Supports image uploads for listings with cloud storage and image transformation capabilities.


Validation & Utilities

  • Joi
  • connect-flash
  • method-override
  • dotenv

Used for:

  • Server-side schema validation
  • Flash notifications
  • RESTful PUT/DELETE support through forms
  • Secure environment variable management

APIs & Cloud Services

Mapbox Geocoding API

Converts location names into geographical coordinates for map rendering.

Mapbox Maps API

Displays interactive maps on listing detail pages.

Cloudinary

Handles cloud-based image upload, storage, optimization, and transformation.

MongoDB Atlas

Cloud-hosted MongoDB database used for application data and session storage.


Key Features

  • Full CRUD operations for listings
  • Authentication and role-based authorization
  • Only listing owners can edit or delete their listings
  • Review system with author-specific deletion permissions
  • Cloud image upload and management
  • Interactive geocoded maps for listings
  • Flash messaging system for user feedback
  • Global error handling
  • Custom 404 error page
  • Persistent sessions across server restarts

What I Learned

This project helped me understand:

  • How frontend and backend connect in a real-world application
  • RESTful routing and MVC architecture
  • Authentication and authorization flows
  • Deployment debugging and production issues
  • Database relationships and schema design
  • Building scalable backend structure

Most importantly, it taught me consistency, debugging patience, and how to keep building even when things repeatedly fail.


Project Status

Completed and deployed successfully.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages