

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

Client
Date
November 2026
Duration
10 months
Technologies
15 tools
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.
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.
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.
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.





