🔗 Hosted Link: Airbnb Project Live
🔗 GitHub Repository: View Source Code
A full-stack Airbnb Clone built using Node.js, Express, MongoDB, and EJS (without React).
It replicates Airbnb’s main functionalities such as user authentication, listing management, reviews, maps, and search.
This project demonstrates a full-featured backend and frontend integration using server-side rendering with EJS.
| Layer | Technology |
|---|---|
| Frontend | EJS, HTML5, CSS3, Bootstrap |
| Backend | Node.js, Express.js |
| Database | MongoDB with Mongoose |
| Authentication | Passport.js |
| Cloud Storage | Cloudinary |
| Map Integration | Mapbox API |
| Hosting | Render |
- 🏠 Create, Edit & Delete Listings
- 👤 User Authentication (Signup, Login, Logout)
- 💬 Add & Delete Reviews
- 🗺️ Map Integration using Mapbox
- 📸 Image Uploads via Cloudinary
- 🔍 Search Functionality to find listings easily
- 📱 Responsive UI using Bootstrap
⚠️ Error Handling & Validation for form inputs
Follow these steps to run the project locally 👇
git clone https://github.com/Ayemen18/AIRBNB-Project.git
cd AIRBNB-Projectnpm installCreate a .env file in the root directory and add the following:
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_KEY=your_key
CLOUDINARY_SECRET=your_secret
MAPBOX_TOKEN=your_mapbox_token
MONGO_URL=your_mongodb_connection_string
SECRET=your_session_secret
⚠️ These environment variables are required for database connection, authentication, and third-party APIs.
node app.jsOnce started, your server will be running locally at port 8080.
Visit the app in your browser:
http://localhost:8080/listings
🎉 You’ll see the Airbnb Clone running on your local machine!
AIRBNB-Project/
│
├── models/ # Mongoose Schemas (User, Listing, Review)
├── routes/ # Express Routes for Listings, Reviews, Authentication
├── views/ # EJS Templates (Frontend Pages)
├── public/ # Static Files (CSS, JS, Images)
├── utils/ # Helper Functions & Middleware
├── app.js # Main Application File
├── package.json # Project Dependencies & Scripts
├── .env.example # Example Environment Variables
└── README.md # Documentation
👨💻 Developed by Shaik Ayemen
💡 A passionate full-stack developer focused on building scalable web applications and beautiful interfaces.
⭐ If you find this project helpful, don’t forget to star the repository!
Huge thanks to the amazing tools and platforms that made this project possible:
- 🗺️ Mapbox — Map integration
- ☁️ Cloudinary — Image hosting and management
- 💅 Bootstrap — Frontend styling
- 🚀 Render — Hosting service
- 🍃 MongoDB Atlas — Cloud database
- 🔐 Passport.js — Authentication management
“Build projects that inspire you — every great developer started with one simple idea.”
— Shaik Ayemen





