Hospital Complaint Management

Software · 2026 · Stack React 18 · Firebase · PWA · Role Solo, commissioned · Status Delivered, 2026 · Scope 4 role-gated dashboards

Hospital Complaint Management

A public hospital needed an internal tool for complaints and equipment faults, and commissioned me to build it. I delivered the whole system solo in three months, and the entire engagement ran online, from the first meeting to handover.

A real client

The commission came through a friend who was helping the hospital, starting with one online meeting. A client expecting delivery is different from a lecturer expecting a report: requirements shift, edge cases come from real wards, and done means someone else can run it without you.

Four roles, one pipeline

The system is a React PWA on Firebase with four dashboards. Nurses report complaints and asset faults against their ward, picked from a searchable ward list. Helpdesk triages the queue and walks each case from Pending to In Progress to Completed. The biomedical engineering team gets its own dashboard for equipment faults, and Admin manages users, including approving every new staff account before it can see anything. Each staff route sits behind a ProtectedRoute keyed to roles.

Notifications run on two channels: Cloud Functions send email through nodemailer, and Firebase Cloud Messaging pushes to the browser, with dead tokens cleaned out of Firestore after every send. Data lives in the asia-southeast1 region, close to the people using it.

Open on one side, closed on the other

The hard requirement sounded contradictory: the client wanted reporting to be open, no registration, because a nurse on a ward round will not stop to create an account. But the hospital still needed to know who reported what, and the staff side had to stay locked down. The answer was to treat them as two trust levels in one system. The reporting side is public: a complaint carries the reporter's name, the ward from a controlled list, and a generated complaint ID, and anyone can check a case's status by searching the asset number or browsing by ward. The management side is closed: accounts, admin approval, and role gates on every route.

Where it stands

Delivered to the client in 2026 after a three month build, April to July. The hospital runs it from here, which was the point.