Where every stay feels like home.
Homekuti is a full-stack homestay booking platform that enables users to discover, book, and manage stays with secure authentication, real-time availability, and seamless online payments.
Built using a scalable MVC architecture, the platform focuses on reliability, user experience, and production-grade backend handling.
Unlike basic CRUD apps, Homekuti implements:
- Resilient backend architecture
- Smart fallback handling (images & location)
- Session-based authentication
- Interactive map experience
- MVC design pattern
- Secure login using Passport.js (Local Strategy)
- Session-based authentication with persistent login
- Flash messaging for user feedback
- Route protection & authorization middleware
- Full CRUD operations for listings
- Ownership-based access control
- Image uploads via Cloudinary
- Automatic fallback image handling
- Integrated Leaflet.js maps
- Dynamic location rendering
- Smart zoom control based on coordinates
- Default fallback to New Delhi if location fails
- India-wide view for approximate data
- Star-based rating system
- Add/delete reviews functionality
- Ownership validation for secure actions
- Centralized error middleware
- Mongoose validation handling
- Multer upload protection
- Graceful failure recovery across services
When external services fail:
- Listing creation still succeeds
- Default coordinates applied
- Map falls back to India view
- UI shows “Approximate location”
💡 Mirrors real-world fault-tolerant system design.
- Cloudinary success → Image stored remotely
- Failure → Default image assigned automatically
- No user flow interruption
controllers → business logic models → schema & database routes → API flow views → UI rendering (EJS) utils → reusable helpers
| Layer | Technology |
|---|---|
| Frontend | EJS, Bootstrap, Custom CSS |
| Backend | Node.js, Express.js |
| Database | MongoDB, Mongoose |
| Authentication | Passport.js |
| Maps | Leaflet.js, LocationIQ |
| Image Storage | Cloudinary |
| Sessions | express-session |
Homekuti/
├── controllers/
├── middlewares/
├── models/
├── public/
│ ├── css/
│ ├── images/
│ └── js/
├── routes/
├── utils/
├── views/
│
├── app.js
├── cloudConfig.js
└── README.md
🚀 Installation
git clone https://github.com/Chandrakant-Suman/Homekuti.git
cd Homekuti
npm install
npm start
Server runs at:
https://homekuti.onrender.com/
---
## 📈 Future Enhancements
- 🌍 High-precision geocoding integration for accurate location mapping
- 🛏️ End-to-end booking system with real-time availability tracking
- 💳 Full payment gateway integration (Razorpay / Stripe)
- 🛠️ Advanced admin dashboard with analytics & controls
- 🔍 Smart search with filters (price, location, category, ratings)
- 🧠 Enhanced system design features (scalability, caching, optimization)
---
👨💻 Author
Chandrakant Suman
GitHub: https://github.com/Chandrakant-Suman





