An open API service indexing awesome lists of open source software.

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.

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).

---