Case study · Perbadanan Putrajaya
A facility complaint tracked from lodgement to contractor payment.
Complaint to payment
— RM 380,000, 2022 to 2024
01 · Client and system
- Perbadanan Putrajaya
- FOAMMS 3.0
- 2022 – 2024
- Delivered and handed over to the agency’s team.
02 · The problem
The complaint, the work order, and the payment were three separate records.
A facility complaint in Putrajaya ends in money leaving the Corporation — a contractor is paid for work that was ordered because someone complained. When the complaint, the work order, and the payment certification live in separate records, nobody can prove the chain from one to the other. The system had to hold all four stages against a single record, so a payment can always be traced back to the complaint that caused it.
03 · What we built
Five things we are accountable for.
- 01 Complaint lodgement and triage, with the complaint as the single record for everything that follows.
- 02 Work order issue and contractor assignment against that complaint.
- 03 Payment certification against completed work, traceable to the original lodgement.
- 04 Mobile notification for assignment and status change, carrying no state of its own.
- 05 Handover to the agency’s own team, with Bahasa Malaysia documentation.
04 · Scale
The numbers this engagement is measured on.
- RM 380k
- Contract value
- 4 stages
- One record
- 2 years
- Delivery period
- 1
- External interface
- Complaints per month — to supply
- Volume
- Contractors on the system — to supply
- Coverage
Two figures are held back until the agency confirms what may be published. An evaluator reads a blank field as honest; a made-up one costs the whole submission.
Architecture explorer
Six layers, in the order a complaint travels from lodgement to payment.
Scroll to move through the stack. Every layer and its detail is on the page whether the highlight runs or not.
-
01
Lodgement
The complaint arriving — the record everything downstream is attached to.
Nothing that follows creates its own record. A work order and a payment are states of this complaint, not separate documents.
-
02
Gateway
Authentication and validation before a complaint or an action is accepted.
Certification and payment actions are restricted to the officers who hold that authority, enforced before the application sees the request.
-
03
Triage and assignment
Classification of the complaint and assignment to a contractor.
A complaint cannot move to a work order without an assigned contractor and a named officer who assigned them.
-
04
Work order queue
Issued work waiting on a contractor, and completed work waiting on certification.
Work sits in a queue with an owner at every stage. Nothing is in an unowned state between lodgement and payment.
-
05
Database
The complaint and its full chain — order, completion, certification, payment.
The chain is the record. A payment cannot be certified against work that has no order, and no order exists without a complaint.
-
06
Payment certification
Certification of completed work, which is what releases payment to the contractor.
Certification is recorded against the complaint, so every ringgit paid traces back to the lodgement that caused it.
Interfaces
One interface, and the queue stays the record of truth.
Complaint assignment, work order status change.
The complaint queue remains the record of truth. A missed push changes no state and the queue is re-read on open.
05 · Result
Three measured outcomes.
Median time from lodgement to work order issue, before and after the system.
Median time from work completion to payment certification.
Proportion of complaints closed within the target window.
This block is deliberately empty. It is the block an evaluation committee reads hardest, and it must carry numbers you can stand behind in a clarification meeting.
06 · Stack and standards
- Laravel
- Flutter
- MySQL
- RESTful API
- Firebase Cloud Messaging
- Complaint to payment
Standards and compliance schedules applicable to this engagement are to be listed here — confirm which may be named publicly before this page is published.