WhatsAppCall MeLinkedInGitHub
✨ Completed
⭐ Featured

PMS - Property Management System

Bilingual property management platform for real estate companies: owners, properties, units, tenants, contracts, rent collection, maintenance, security, HR and financial reports in one dashboard.

PMS - Property Management System

Client

Date

November 2026

Duration

10 months

Technologies

15 tools

Technologies Used

Next.js

React

TypeScript

Prisma

MySQL

Tailwind CSS

NextAuth.js

next-intl

TanStack Query

TanStack Table

Recharts

Zod

Vitest

Netlify

WhatsApp Cloud API

Project Overview

PMS is a multi-organization property management system built with Next.js 16, Prisma and MySQL. A real estate company uses it to run its whole portfolio from one dashboard: owners and their payouts, properties and units, tenants and complaints, contracts, rent receipts, company commissions, maintenance tickets, physical assets, security guards and shifts, and employee attendance and payroll. The interface ships in English and Arabic with full RTL support, and the system sits on top of a role and permission layer so each team member only sees the modules they work with. Four scheduled jobs handle overdue rent, reminders, renewals and monthly invoicing without anyone clicking a button.

Challenge

A property company usually runs on scattered spreadsheets, WhatsApp threads and paper contracts. Rent due dates get missed, owner statements are rebuilt by hand every month, maintenance requests disappear, and nobody can say how much a given building actually earned. The system had to cover very different areas (finance, tenants, maintenance, security staff, HR) in one data model, support Arabic-speaking staff with proper RTL layouts, keep several organizations and branches separated, and run recurring jobs such as overdue checks and reminders reliably on a serverless host instead of a long-running server.

Solution

I designed one Prisma schema that links owners, properties, units, tenants, contracts, rent receipts and commissions, then added maintenance, assets, security and HR models around it. The dashboard is split by module under a localized App Router with next-intl for English and Arabic. Access is controlled with roles, groups and permissions, plus audit logs for sensitive actions. Four cron endpoints run daily and monthly: overdue checks, rent reminders, renewals and maintenance alerts, and monthly invoice and report generation. Tenant notices go out through the WhatsApp Cloud API and email. The seed script creates demo users for several roles, and the login page has a quick-login selector so the system can be demoed without sharing real credentials.

Results & Impact

Delivered a working end-to-end system with 11 dashboard modules, a versioned REST API under /api/v1/pms with a route group for each module, and a Prisma schema of about 50 models. Rent reminders at 7, 3 and 1 days before due date, overdue marking, contract renewal alerts and monthly invoices run automatically through four scheduled jobs. Owners get statements and payouts generated from recorded receipts and commissions. The app builds for Netlify and Vercel, and demo data covers multiple roles so each module can be shown without live customer records.

Key Features

Owner profiles with payouts and statements
Property and unit management
Tenant records with complaints tracking
Contract management with renewal alerts
Rent collection and receipts
Company commission tracking
Maintenance tickets workflow
Asset register with maintenance logs
Security guards shifts and incidents
HR attendance and payroll
Financial reports and analytics
English and Arabic with RTL support
Role and permission based access
Two-factor authentication
WhatsApp rent reminders and notices
Scheduled overdue checks and monthly invoicing
Audit logs for sensitive actions

Project Gallery

PMS - Property Management System - Image 1
PMS - Property Management System - Image 2
PMS - Property Management System - Image 3
PMS - Property Management System - Image 4
PMS - Property Management System - Image 5
PMS - Property Management System - Image 6