1.
Introduc on
Project Title: House Rent App using MERN
Team Members:
o Chandrashekar Deverche y - Project Lead / Full Stack Developer
o Delli Ganesh - Frontend Developer
o Chandra Soodan - Backend Developer
o Chappidi Rohan Reddy - Database Specialist
2. Project Overview
Purpose: The House Rent App is designed to simplify the rental process for property
owners and tenants by offering a comprehensive digital pla orm. It aims to
streamline communica on, facilitate easy property management, and enhance user
experience in the rental market. The applica on serves as a centralized system where
property owners can manage lis ngs, and tenants can browse and book proper es
based on their preferences.
Features:
o User Management: Role-based user management, enabling dis nct
func onali es for admins, property owners, and tenants.
o Property Lis ngs: Property owners can list, update, and manage their rental
proper es, including images, pricing, and detailed descrip ons.
o Search Func onality: Advanced search filters based on loca on, price range,
property type, and ameni es.
o Booking Management: Booking requests, status updates, and tracking
features for tenants, with no fica on systems in place.
o Admin Oversight: Admins manage pla orm policies, approve property lis ngs,
handle disputes, and ensure data integrity.
o Virtual Tours: Incorporates virtual tour capability, allowing tenants to explore
proper es remotely before visi ng.
o Automated Payment Reminders: No fica on system to alert tenants about
payment deadlines and avoid late fees.
o Dynamic Pricing Model: Allows property owners to adjust rental prices based
on market trends and demand.
o Community Forums: A dedicated sec on for tenants and owners to share
insights, experiences, and advice.
3. Architecture
Frontend:
o Developed using [Link], the frontend leverages state management (e.g.,
Redux) for seamless data flow and interac vity.
o Integra on of React Router for smooth naviga on between pages without
reloading.
o Responsive and adap ve design using CSS3 and Bootstrap, ensuring a
consistent user experience across various devices.
o U lizes component-based architecture for be er code maintainability and
scalability.
Backend:
o Built with [Link] and [Link], providing a robust REST API framework for
handling client-server communica on.
o Modular structure with controllers, services, and middleware to separate
concerns and improve code maintainability.
o U lizes [Link] middleware for error handling, logging, authen ca on, and
valida on.
o Implements secure server-side opera ons, such as input valida on and
sani za on, to prevent vulnerabili es.
Database:
o U lizes MongoDB as the primary database for storing data, including user
profiles, property lis ngs, booking details, and transac ons.
o Designed with a flexible schema to accommodate various property types, user
roles, and dynamic content.
o Implements efficient indexing strategies to op mize search queries and data
retrieval.
o Uses Mongoose for object modeling and data valida on, enforcing schema
consistency and facilita ng database interac ons.
4. Setup Instruc ons
Prerequisites:
o [Link] (version 16.x or higher)
o MongoDB (version 5.x or higher)
o npm (Node package manager)
o Op onal: Docker for containeriza on.
Installa on:
1. Clone the repository:
bash
git clone h ps://[Link]/Deverche yChandrashekar-18/House-rent-
[Link]
2. Navigate to the project directory:
bash
cd House-rent-app-using-MERN
3. Install dependencies for both client and server:
Client:
bash
cd client
npm install
Server:
bash
cd server
npm install
4. Set up environment variables in a .env file in the server directory (e.g.,
database URI, JWT secret, API keys).
5. Folder Structure
Backend Frontend
6. Running the Applica on
Frontend:
o Navigate to the client directory:
bash
npm start
Backend:
o Navigate to the server directory:
bash
npm start
7. API Documenta on
Authen ca on:
o POST /api/users/login: User login.
o POST /api/users/register: New user registra on.
Proper es:
o GET /api/proper es: Retrieve all property lis ngs.
o POST /api/proper es: Create a new property.
o PUT /api/proper es/:id: Update an exis ng property.
o DELETE /api/proper es/:id: Remove a property lis ng.
Bookings:
o GET /api/bookings: Get all bookings for a user.
o POST /api/bookings: Create a new booking.
o PATCH /api/bookings/:id: Update booking status.
Example Response:
json
{
"success": true,
"message": "Booking created successfully",
"data": {
"bookingId": "5f8f8f8f8f8f8f8f8f8f8f8",
"propertyId": "5f8f8f8f8f8f8f8f8f8f8f8",
"tenant": "John Doe",
"status": "pending"
}
}
8. Authen ca on
U lizes JWT (JSON Web Tokens) for secure user authen ca on.
Encrypted passwords using bcrypt.
Role-based access control (RBAC) to limit permissions based on user roles.
Secure token storage using HTTP-only cookies.
9. User Interface
Focuses on a clean, intui ve UI/UX design, ensuring a seamless browsing experience.
Features a dashboard for property owners to manage lis ngs and bookings.
Tenants can easily filter search results using a sidebar with adjustable criteria.
Mobile-first design with responsive elements for varying screen sizes.
10. Tes ng
Frontend Tes ng:
o Uses Jest and React Tes ng Library for unit and integra on tests.
Backend Tes ng:
o Implements Mocha and Chai for API tes ng.
o Postman collec ons for manual tes ng of endpoints.
11. Screenshots or Demo
Demo Link : h ps://[Link]/Deverche yChandrashekar-18/House-rent-app-
using-MERN/blob/main/Demo%20video.mp4
12. Known Issues
Occasionally slow image uploads due to server limits.
Lack of real- me updates for booking statuses; requires manual refresh.
Some search filters may not be fully op mized for large datasets.
13. Future Enhancements
Payment Integra on: Support for online transac ons with secure gateways like
PayPal or Stripe.
Real-Time No fica ons: Use of WebSocket’s for real- me updates on bookings and
communica ons.
Advanced Analy cs: Dashboards for property owners with insights on views,
bookings, and financial trends.
AI-Based Recommenda ons: Smart sugges ons based on tenant search history and
preferences.