https://github.com/avinashumrao/safarnest
A full-stack vacation rental web app like Airbnb with listing, booking, and search functionality, built using Node.js, Express, EJS, and MongoDB.
https://github.com/avinashumrao/safarnest
bootstrap cloudinary ejs expressjs mapbox mongodb nodejs passportjs vacation-rental
Last synced: 3 months ago
JSON representation
A full-stack vacation rental web app like Airbnb with listing, booking, and search functionality, built using Node.js, Express, EJS, and MongoDB.
- Host: GitHub
- URL: https://github.com/avinashumrao/safarnest
- Owner: AvinashUmrao
- Created: 2025-07-05T15:11:58.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-07-13T06:25:25.000Z (12 months ago)
- Last Synced: 2025-07-13T08:36:26.359Z (12 months ago)
- Topics: bootstrap, cloudinary, ejs, expressjs, mapbox, mongodb, nodejs, passportjs, vacation-rental
- Language: EJS
- Homepage: https://safarnest-8im9.onrender.com
- Size: 107 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
---
# π SafarNest π‘
A Full-Stack Vacation Rental Platform
## π Project Summary
**SafarNest** is a comprehensive full-stack web application that allows users to browse, book, and list vacation accommodations, including houses, villas, and farmhouses. Inspired by platforms like Airbnb, it offers a seamless and intuitive user experience, real-time property mapping, and secure user authentication.
## π Frontend
**Technologies:** HTML, CSS, JavaScript, Bootstrap, EJS
**Features:**
* π± Fully Responsive Design
* π Search & Filter Listings
* πΊοΈ Mapbox Integration for Property Location View
* π¨ EJS Templates for Dynamic Content
## π οΈ Backend
**Technologies:** Node.js, Express.js
**Features:**
* π Authentication via Passport.js (Local, Google & GitHub OAuth)
* π§© RESTful APIs for Listings, Reviews, and Users
* π¦ MVC Architecture for Scalability
* πͺ Session & Cookie Handling with Flash Messages
## ποΈ Database
**MongoDB Atlas** with **Mongoose ODM**
* Structured Schema for Listings, Users, and Reviews
* Query Handling for Search, Filter, and Booking
## βοΈ Cloudinary Integration
* Secure and optimized image hosting
* Fast media delivery for property visuals
## π Key Features
* π Browse & Book Unique Stays
* π Advanced Filters by Category (Trending, Camping, etc.)
* π User Reviews & Ratings
* π Client/Server-side Validations
* π§Ύ Tax Toggle for Price Transparency
## πΊ Deployment
**Live App:** [SafarNest on Render](https://safarnest-8im9.onrender.com)
**Database:** MongoDB Atlas
**Image Hosting:** Cloudinary
## π Folder Structure
```
SafarNest/
β-- controllers/ # Business logic
β-- models/ # Mongoose schemas
β-- routes/ # Express routes
β-- views/ # EJS templates
β-- public/ # Static assets (CSS, JS, images)
β-- utils/ # Utility functions
β-- middleware.js # Custom middleware
β-- cloudconfig.js # Cloudinary config
β-- app.js # Main server file
β-- .env # Environment variables
```
## βοΈ Installation & Setup
```bash
git clone https://github.com/yourusername/safarnest.git
cd safarnest
npm install
```
Create a `.env` file with:
```env
CLOUD_NAME=your_cloudinary_name
CLOUD_API_KEY=your_key
CLOUD_API_SECRET=your_secret
MAP_API_KEY=your_mapbox_key
ATLASDB_URL=your_mongodb_uri
SECRET=your_session_secret
```
## π¦ Tech Stack
* **Frontend:** HTML, CSS, JS, Bootstrap, EJS
* **Backend:** Node.js, Express.js
* **Database:** MongoDB Atlas
* **Authentication:** Passport.js (Local + OAuth)
* **File Uploads:** Multer + Cloudinary
* **Validation:** Joi
* **Session Management:** express-session + connect-mongo
## π License
This project is licensed under the [MIT License](LICENSE).
---