- About the Project
- Features
- Tech Stack
- Project Structure
- Getting Started
- Screenshots
- API Endpoints
- Contributing
- License
- Contact
HouseHunt is a full-stack rental home finder platform designed to bridge the gap between property owners and tenants. Whether you're a landlord looking to list your property or a tenant searching for your next home, HouseHunt provides a seamless, intuitive experience.
Goal: Make the rental home search process simple, fast, and transparent.
- 3-Role System — Separate flows for Admin, Property Owners, and Tenants
- Auth System — Register, Login, Forgot Password with JWT & bcryptjs
- Property Management — Owners can add, update, delete, and view their listings
- Image Uploads — Property photos uploaded via Multer
- Booking System — Tenants book properties; Owners approve or reject
- Admin Panel — Admins manage users, grant/revoke Owner access, view all data
- Protected Routes — JWT middleware guards all sensitive endpoints
- Availability Tracking — Property status auto-updates on booking approval
- Responsive Design — Optimized for mobile, tablet, and desktop
| Technology | Purpose |
|---|---|
| React.js | UI Component Library |
| CSS3 | Styling & Responsive Design |
| Axios | HTTP Client for API calls |
| Technology | Purpose |
|---|---|
| Node.js | Runtime Environment |
| Express.js | Web Framework |
| MongoDB | NoSQL Database |
| Mongoose | ODM for MongoDB |
| JWT (jsonwebtoken) | Authentication tokens |
| bcryptjs | Password hashing |
| Multer | Property image uploads |
| dotenv | Environment variable management |
| cors | Cross-Origin Resource Sharing |
| nodemon | Auto-restart during development |
HouseHunt-Finding-Your-Perfect-Rental-Home/
│
├── frontend/ # React frontend application
│ ├── public/ # Static assets
│ └── src/
│ ├── components/ # Reusable UI components
│ ├── pages/ # Page-level components
│ ├── services/ # API service calls
│ └── App.js # Root component
│
├── backend/ # Node.js + Express backend
│ ├── controllers/ # Route handlers
│ ├── models/ # Mongoose data models
│ ├── routes/ # API routes
│ ├── middleware/ # Auth & error handling middleware
│ └── server.js # Server entry point
│
├── ProjectDocumentation/ # Project docs and references
│
└── README.md
Make sure you have the following installed:
- Node.js (v16 or above)
- npm or yarn
- MongoDB (local or MongoDB Atlas)
- Clone the repository
git clone https://github.com/Suresh-1116/HouseHunt-Finding-Your-Perfect-Rental-Home.git
cd HouseHunt-Finding-Your-Perfect-Rental-Home- Install Backend Dependencies
cd backend
npm install- Install Frontend Dependencies
cd ../frontend
npm install- Set up Environment Variables
Create a
.envfile in thebackend/folder:
PORT=8001
MONGO_DB=your_mongodb_connection_string
JWT_KEY=your_jwt_secret_keyStart the Backend Server
cd backend
npm startStart the Frontend (in a new terminal)
cd frontend
npm startThe app will be live at http://localhost:3000 🎉
| Home Page | Property Listing | Search Results |
|---|---|---|
_(![]() |
||
| )_ | _(![]() |
|
| )_ | _(![]() |
|
| )_ |
| Method | Endpoint | Auth | Description |
|---|---|---|---|
POST |
/api/user/register |
❌ | Register as Tenant or Owner |
POST |
/api/user/login |
❌ | Login and receive JWT token |
POST |
/api/user/forgotpassword |
❌ | Reset account password |
POST |
/api/user/getuserdata |
✅ | Get logged-in user profile |
GET |
/api/user/getAllProperties |
❌ | Fetch all available listings |
POST |
/api/user/bookinghandle/:propertyid |
✅ | Book a property |
GET |
/api/user/getallbookings |
✅ | Get tenant's own bookings |
| Method | Endpoint | Auth | Description |
|---|---|---|---|
POST |
/api/owner/postproperty |
✅ | Add a new property listing |
GET |
/api/owner/getallproperties |
✅ | Get owner's own properties |
PATCH |
/api/owner/updateproperty/:propertyid |
✅ | Update a property |
DELETE |
/api/owner/deleteproperty/:propertyid |
✅ | Delete a property |
GET |
/api/owner/getallbookings |
✅ | View bookings for owner's properties |
POST |
/api/owner/handlebookingstatus |
✅ | Approve or reject a booking |
| Method | Endpoint | Auth | Description |
|---|---|---|---|
GET |
/api/admin/getallusers |
✅ | Get all registered users |
POST |
/api/admin/handlestatus |
✅ | Grant/revoke Owner access |
GET |
/api/admin/getallproperties |
✅ | View all properties platform-wide |
GET |
/api/admin/getallbookings |
✅ | View all bookings platform-wide |
Contributions are what make the open-source community such an amazing place! Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
Suresh — @Suresh-1116
Project Link: https://github.com/Suresh-1116/HouseHunt-Finding-Your-Perfect-Rental-Home
Star this repo if you found it helpful!


