Start a project

Business systems · Case study

Every obligation. On the radar.

Leases, cheques, maintenance and annual maintenance contracts (AMC) on one operational record.

Sector
Property management, Abu Dhabi
Year
2026
Kind of work
Business systems

Situation

A property management business looks after a portfolio in Abu Dhabi: properties and units, leases and tenants, post-dated cheques, maintenance, vendors and annual maintenance contracts (AMC), each with dates that matter.

Challenge

Every lease, cheque and contract date had to be caught without relying on anyone's memory.

Property operations are mostly deadlines. A lease expires, a post-dated cheque comes due for deposit, an AMC visit is scheduled, a vendor contract lapses, a violation needs escalating. The operation needed every one of those dates watched by the system itself, whether or not anyone opened it.

Our approach

We modelled the portfolio once and gave its deadlines to the system.

Property work turns on dates: a lease expiry, a cheque due for deposit, a maintenance visit, a vendor contract, a violation to escalate. We recommended holding property, unit, lease and tenant as one structure, so everything attaches where it belongs, and giving every date that must not be missed to the system rather than to someone's memory. We then brought the whole portfolio into one place: leases, cheques, maintenance, vendors and purchase orders, budgets, utilities and annual maintenance contracts, plus violations, documents and messages. The critical dates are checked every day and the right people are told by email or WhatsApp. Seven roles each see what they need, and every change is recorded.

  1. Property recordProperty, unit, lease and tenant as one structure, so every cheque, ticket, meter reading and contract visit attaches to the lease or unit it belongs to.
  2. LeasesCreate, edit, renew and check out, with deposit deductions, multi-unit leases, bulk renewal and spreadsheet export.
  3. Daily checksFive daily scheduled checks: cheque deposit dates, lease expiry, vendor contract expiry, annual maintenance contract reminders and violation escalation.
  4. NotificationsPer-event recipients and channels, over email and WhatsApp, with quiet hours.
  • Tenants and householdsTenant records with household members, registration by invitation and sign-in with a one-time code.
  • Post-dated chequesA cheque register with deposit-date reminders, receipts and bulk updates.
  • MaintenanceTickets with photos, status history, comments and vendor assignment, exportable.
  • Vendors and purchase ordersOnboarding checklists, contracts and quotations, and local purchase orders (LPOs) with line items and a generated PDF.
  • Budgets and financeBudgets and sub-budgets with invoices, common-area expenses, and revenue and expense views.
  • UtilitiesAccounts, meters, readings and bills, per unit and for common areas.
  • AMC contractsAnnual maintenance contracts with schedules, visits, visit photos and payments.
  • Check-in and check-outRoom photos, scanned documents, signature, and a check-in against check-out comparison.
  • ReportingOccupancy, finance, tickets, cheques, leases, vendors and budget, as data on screen and as PDF.
  • Access and auditSeven roles with per-user permission overrides, two-factor sign-in, audit log and login activity.

How it works

One flow, start to finish.

Workflow

Select a stage to see what it does, what it receives and what it hands on.

ControlCaptureRecordWorkOutcomeControlCaptureRecordWorkOutcome

Select a stage to see what it does, what it receives and what it hands on.

  1. Capture: Operational records. Receives from: Nothing. Hands on to: Property · unit · lease.
  2. Record: Property · unit · lease (Property record). Property, unit, lease and tenant as one structure, so every cheque, ticket, meter reading and contract visit attaches to the lease or unit it belongs to. Receives from: Operational records. Hands on to: Leases, Reporting.
  3. Record: Leases. Dates attach to leases and contracts Receives from: Property · unit · lease. Hands on to: Daily checks.
  4. Work: Daily checks. Receives from: Leases. Hands on to: The right person is notified.
  5. Outcome: The right person is notified (Notifications). Receives from: Daily checks. Hands on to: Nothing.
  6. Control: Reporting. Receives from: Property · unit · lease. Hands on to: Nothing.
Workflow diagram, drawn from this case study: the steps the system is built around, and the part of it that handles each. Not a product screenshot.

The system opens on occupancy, revenue and what maintenance is outstanding. A lease is the unit of work: its units, its cheques, its deductions, its documents and its renewal all live on it. Maintenance runs the other way: a ticket arrives, is assigned to a vendor, gathers photos and status history, and ends in a completed job with a quotation and an order behind it. Tenants see the same records through their own sign-in.

What changed · As at September 2026

Deadlines checked by the system, every day.

5daily operational checks
7access roles
2backups a day

The portfolio's deadlines are the system's job: cheque deposits, lease expiries, vendor contracts, maintenance visits and violations are checked every day, and the people responsible are told by email or WhatsApp. Every change is on record.

In production for an Abu Dhabi portfolio and still being extended. The tenant side is built; adoption figures are not published.

For technical teams

Engineering decisions

How it was built.

Model the domain properly, then let the schedule do the remembering. Property, unit, lease and tenant are one structure rather than four lists, so every operational record (a cheque, a ticket, a meter reading, an AMC visit) attaches to the lease or unit it belongs to. Anything with a date that must not be missed becomes a job that runs whether or not anyone opens the system.

A Laravel application with a token-authenticated API alongside the web product, so the tenant-facing side is the same data seen through a different client. The part that matters operationally is the scheduler: five domain watchers run daily (cheque deposit dates, lease expiry, vendor contract expiry, AMC reminders, violation escalation) alongside weekly housekeeping and two labelled backups a day. Notifications are configuration rather than code: per event, which roles are told and on which channel, with quiet hours that a critical event can be permitted to bypass. WhatsApp carries both notifications and the one-time codes tenants sign in with.

Built with

Laravel 11SanctumPostgreSQLWhatsApp