A complete travel accommodation marketplace inspired by Airbnb. Property owners list their rentals with photos, descriptions, prices, and availability. Travelers browse listings with an interactive Mapbox map showing property locations geographically. Full CRUD functionality for listings — create, edit, delete, and manage properties. Guest review system allows travelers to leave ratings and detailed feedback. Implemented multi-step property creation form, image gallery management, availability calendars, and search filters. OAuth-based authentication with Passport.js enables secure multi-user access with different permission levels.
The challenge
Building a two-sided marketplace where property owners and travelers interact separately but their data interconnects. Managing user permissions, preventing unauthorized edits, and displaying geospatial data efficiently. Handling large image uploads and optimizing map performance.
The solution
Implemented role-based access control — property owners can only edit their own listings. Used Passport.js for secure authentication and session management. Integrated Mapbox API to geocode listing addresses into interactive map markers with filtering capabilities. MongoDB relationships between User → Listing → Reviews collections with proper indexing. Implemented lazy loading for map performance and image optimization.
Built with
Project Type
Web App
Year
2024
Status
Complete