0% found this document useful (0 votes)
4 views13 pages

RPMS Implementation Approach

The Rental Property Management System (RPMS) is a full-stack web application designed to enhance property management for owners and tenants, detailing its implementation approach including technology stack, database design, and development phases. It utilizes a MERN or LAMP stack, with a focus on secure user authentication, role-based access, and CRUD operations on core entities like users, properties, and payments. The project serves as a practical application of database management concepts, showcasing real-world SQL functionalities and responsive frontend design.

Uploaded by

psshanker381
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views13 pages

RPMS Implementation Approach

The Rental Property Management System (RPMS) is a full-stack web application designed to enhance property management for owners and tenants, detailing its implementation approach including technology stack, database design, and development phases. It utilizes a MERN or LAMP stack, with a focus on secure user authentication, role-based access, and CRUD operations on core entities like users, properties, and payments. The project serves as a practical application of database management concepts, showcasing real-world SQL functionalities and responsive frontend design.

Uploaded by

psshanker381
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Rental Property Management System Implementation Approach

RENTAL PROPERTY
MANAGEMENT SYSTEM
Implementation Approach Document

Course Database Management


Systems

Document Type Project Implementation


Plan

Project Type Full-Stack Web


Application

Database Management Systems Project | Page 1 of 13


Rental Property Management System Implementation Approach

1. Introduction

The Rental Property Management System (RPMS) is a full-stack web application built to digitize and
streamline the operations of property owners and tenants. This document outlines the complete
implementation approach — covering technology stack, database design, backend API, frontend
development, and deployment strategy.

This project serves as the DBMS course project, demonstrating real-world application of relational
database concepts such as normalization, foreign key relationships, joins, and transaction
management.

2. Technology Stack

2.1 Recommended Stack (MERN / LAMP options)

Layer Technology Purpose

Frontend HTML, CSS, JavaScript (or User interface and interaction


[Link])
Backend [Link] + [Link] (or PHP) REST API and business logic
Database MySQL / PostgreSQL Data storage and relationships
Authentication JWT Tokens / Sessions Secure login management
Hosting Localhost (XAMPP / WAMP) Development environment

2.2 Why This Stack?


• MySQL is ideal for relational data with foreign keys, joins, and ACID compliance
• [Link]/Express provides lightweight, fast REST API endpoints
• [Link] (or plain HTML+JS) enables dynamic dashboards without page reloads
• JWT ensures stateless, secure authentication for owners and tenants

Database Management Systems Project | Page 2 of 13


Rental Property Management System Implementation Approach

3. Database Design

3.1 Entity-Relationship Summary

The system is built around 5 core tables with clear foreign key relationships:

Table Name Primary Key Foreign Keys Description

Users user_id — Stores all users


(owners and tenants)
Properties property_id owner_id → Users Properties listed by
owners
Tenants tenant_id user_id → Users, property_id → Tenant assignments
Properties to properties
Payments payment_id tenant_id → Tenants Rent payment records
MaintenanceReque request_id tenant_id → Tenants, Maintenance tickets
sts property_id → Properties submitted by tenants

3.2 Table Schemas (DDL)

Users Table

SQL CREATE TABLE Users ( user_id INT PRIMARY KEY AUTO_INCREMENT, name
VARCHAR(100) NOT NULL, email VARCHAR(100) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL, role ENUM('owner','tenant') NOT
NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP );

Properties Table

SQL CREATE TABLE Properties ( property_id INT PRIMARY KEY


AUTO_INCREMENT, owner_id INT NOT NULL, title VARCHAR(150), address
TEXT, city VARCHAR(100), rent_amount DECIMAL(10,2), num_rooms INT,
description TEXT, FOREIGN KEY (owner_id) REFERENCES Users(user_id) ON
DELETE CASCADE );

Tenants Table

Database Management Systems Project | Page 3 of 13


Rental Property Management System Implementation Approach

SQL CREATE TABLE Tenants ( tenant_id INT PRIMARY KEY AUTO_INCREMENT,


user_id INT NOT NULL, property_id INT NOT NULL, phone VARCHAR(20),
lease_start DATE, lease_end DATE, FOREIGN KEY (user_id) REFERENCES
Users(user_id), FOREIGN KEY (property_id) REFERENCES
Properties(property_id) );

Payments Table

SQL CREATE TABLE Payments ( payment_id INT PRIMARY KEY


AUTO_INCREMENT, tenant_id INT NOT NULL, amount DECIMAL(10,2),
payment_date DATE, status ENUM('Paid','Pending') DEFAULT 'Pending',
FOREIGN KEY (tenant_id) REFERENCES Tenants(tenant_id) );

MaintenanceRequests Table

SQL CREATE TABLE MaintenanceRequests ( request_id INT PRIMARY KEY


AUTO_INCREMENT, tenant_id INT NOT NULL, property_id INT NOT NULL,
description TEXT, status ENUM('Pending','In Progress','Resolved') DEFAULT
'Pending', submitted_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (tenant_id) REFERENCES Tenants(tenant_id), FOREIGN KEY
(property_id) REFERENCES Properties(property_id) );

Database Management Systems Project | Page 4 of 13


Rental Property Management System Implementation Approach

4. Backend Implementation

4.1 Project Structure

Folder rpms-backend/ ├── [Link] (entry point) ├── config/ │ └── [Link] (DB
connection) ├── routes/ │ ├── [Link] │ ├── [Link] │ ├── [Link]
│ ├── [Link] │ └── [Link] ├── middleware/ │ └──
[Link] └── [Link]

4.2 API Endpoints

Method Endpoint Access Description

POST /api/auth/register Public Register new user


POST /api/auth/login Public Login and receive JWT token
GET /api/properties Owner Get all properties for logged-in owner
POST /api/properties Owner Add a new property
PUT /api/properties/:id Owner Update property details
DELETE /api/properties/:id Owner Delete a property
GET /api/tenants Owner View tenants for owner's properties
POST /api/tenants Owner Assign a tenant to a property
GET /api/payments Owner/Tenant View payment records
POST /api/payments Owner Record a new rent payment
GET /api/maintenance Owner/Tenant View maintenance requests
POST /api/maintenance Tenant Submit a maintenance request
PUT /api/maintenance/:id Owner Update request status

4.3 Authentication Flow

1. User submits email and password via login form


2. Server queries the Users table to find matching email
3. Hashed password is verified using [Link]()
4. On success, a JWT token is generated with user_id and role as payload
5. Token is returned to the frontend and stored in localStorage
6. All protected routes validate the token using authMiddleware

Database Management Systems Project | Page 5 of 13


Rental Property Management System Implementation Approach

Database Management Systems Project | Page 6 of 13


Rental Property Management System Implementation Approach

5. Frontend Implementation

5.1 Page Structure

Page / Component Route Accessible By

Home / Landing Page / All users


Register Page /register Public
Login Page /login Public
Owner Dashboard /owner/dashboard Owners only
Add / Edit Property /owner/properties Owners only
Tenant Management /owner/tenants Owners only
Payment Tracker /owner/payments Owners only
Tenant Dashboard /tenant/dashboard Tenants only
My Property Info /tenant/property Tenants only
Maintenance Requests /tenant/maintenance Tenants only

5.2 Key UI Features

• Responsive design using CSS Grid / Flexbox or Bootstrap


• Role-based routing: owner and tenant see different dashboards after login
• Dynamic tables for properties, tenants, payments, and maintenance
• Modal forms for adding and editing records without full page reload
• Status badges for payment (Paid/Pending) and maintenance (Pending/In Progress/Resolved)
• Real-time feedback on form submission (success/error messages)

Database Management Systems Project | Page 7 of 13


Rental Property Management System Implementation Approach

6. DBMS Concepts Applied

6.1 Normalization

Normal Form Application in Project

1NF All columns contain atomic values — no repeating groups


2NF No partial dependencies — every non-key attribute depends on the full
primary key
3NF No transitive dependencies — attributes depend only on the primary key,
not on other non-key columns

6.2 Relationships and Joins

• One-to-Many: One Owner has many Properties


• One-to-Many: One Property has many Tenants over time
• One-to-Many: One Tenant has many Payments
• One-to-Many: One Tenant has many MaintenanceRequests

Example JOIN query — Owner viewing all tenants with property info:

SQL Query SELECT t.tenant_id, [Link] AS tenant_name, [Link] AS property, [Link],


t.lease_start, t.lease_end FROM Tenants t JOIN Users u ON t.user_id = u.user_id
JOIN Properties p ON t.property_id = p.property_id WHERE p.owner_id = 5;

6.3 Transactions

Transactions ensure data consistency in critical operations. Example: recording a payment updates
both the Payments table and optionally a ledger balance atomically.

SQL START TRANSACTION; INSERT INTO Payments (tenant_id, amount,


payment_date, status) VALUES (3, 15000.00, CURDATE(), 'Paid'); UPDATE
Tenants SET last_payment_date = CURDATE() WHERE tenant_id = 3; COMMIT;

6.4 Indexes

Database Management Systems Project | Page 8 of 13


Rental Property Management System Implementation Approach

• Index on [Link] — for fast login lookups


• Index on Properties.owner_id — for fast property retrieval per owner
• Index on Payments.tenant_id — for quick payment history queries

Database Management Systems Project | Page 9 of 13


Rental Property Management System Implementation Approach

7. Implementation Phases

Phase Tasks Duration

Phase 1: Planning Requirements gathering, ER diagram, schema design Week 1


Phase 2: Database Create database, define all tables and relationships using Week 2
Setup DDL
Phase 3: Backend Setup Express server, implement all REST API Week 3-4
Development endpoints, authentication
Phase 4: Frontend Build all HTML pages/React components, connect to API, Week 5-6
Development role-based routing
Phase 5: Testing Unit testing, integration testing, edge case handling Week 7
Phase 6: Finalize documentation, prepare presentation, demo Week 8
Documentation & rehearsal
Viva

Database Management Systems Project | Page 10 of 13


Rental Property Management System Implementation Approach

8. Security Considerations

Threat Mitigation Strategy

SQL Injection Use parameterized queries / prepared statements — never


concatenate raw input into SQL
Password Exposure Hash all passwords using bcrypt before storing in the database
Unauthorized Access JWT middleware verifies token on every protected route
Role Bypass Server-side role check on every API endpoint (not just frontend)
Data Leakage Owners can only query data belonging to their own properties
XSS Attacks Sanitize all user input on the frontend before rendering

Database Management Systems Project | Page 11 of 13


Rental Property Management System Implementation Approach

9. Sample Data (for Testing)

9.1 Insert Sample Owner

SQL INSERT INTO Users (name, email, password_hash, role) VALUES ('Ahmed
Khan', 'ahmed@[Link]', '$2b$10$hashedpassword', 'owner');

9.2 Insert Sample Property

SQL INSERT INTO Properties (owner_id, title, address, city, rent_amount,


num_rooms) VALUES (1, 'Sunshine Apartments - Unit 4B', '12 MG Road',
'Hyderabad', 18000.00, 3);

9.3 Insert Sample Payment

SQL INSERT INTO Payments (tenant_id, amount, payment_date, status) VALUES (1,
18000.00, '2025-03-01', 'Paid');

Database Management Systems Project | Page 12 of 13


Rental Property Management System Implementation Approach

10. Summary

The Rental Property Management System demonstrates a complete real-world application of Database
Management Systems concepts. The implementation approach covers:

• Relational database design with normalized tables and foreign key constraints
• Full CRUD operations on all five core entities
• Secure user authentication using JWT and bcrypt
• Role-based access control separating owner and tenant functionality
• Real-world SQL concepts: JOINs, transactions, indexes, and aggregate queries
• REST API backend with clearly defined endpoints
• Responsive frontend with role-based dashboards

This system is a practical demonstration of how DBMS principles translate into a production-grade web
application used for real property management workflows.

Database Management Systems Project | Page 13 of 13

You might also like