[ Solo ] Completed
Full-Stack Airbnb Clone
A full-featured clone of Airbnb with listings, reviews, and interactive maps.
- Node.js
- Express
- MongoDB
- EJS
- Passport.js
- Cloudinary
- Mapbox
What it is
A complete web application built on the MERN stack (minus React, using EJS instead) that replicates the core functionalities of Airbnb. It features user authentication, CRUD for property listings, image uploads to Cloudinary, user reviews and ratings, and interactive maps via Mapbox.
Decisions
- Chose a classic MVC architecture with Node.js and Express for a robust and scalable backend.
- Used EJS for server-side rendering to create a dynamic, multi-page application without the complexity of a full SPA framework.
- Integrated MongoDB with Mongoose for a flexible, schema-based NoSQL database.
- Implemented Passport.js for secure user authentication and session management.
- Utilized Cloudinary for cloud-based image storage and management, and Mapbox for interactive maps.
Build log
- Set up the Express server and connected to MongoDB.
- Defined Mongoose schemas for Listings, Reviews, and Users.
- Built the core CRUD routes and controllers for listings.
- Implemented user authentication using Passport.js.
- Integrated Multer and Cloudinary for handling image uploads.
- Added the review and rating functionality, linking reviews to listings and users.
- Integrated the Mapbox API to display interactive maps on listing pages.