Rosters and leave
Shifts, assignments, leave, holidays, period locks, overtime and preferred days, per unit.
One system for how a care clinic is run.
A multi-tenant management system for a group of Dutch care clinics. I rebuilt the whole web app from a clean slate, wrote a third of the API, and contributed to the mobile app staff use on the ward.
THE HEADLINE
16 modules
Files, rosters, tasks, incidents, handbooks, norms, DPIA and patients in one system
01 · The problem
Care clinics in the Netherlands have to show that every handbook, norm, incident and data-protection assessment is in order, while staff still need their shifts, tasks and files on hand. All of that lived in separate tools, and none of it sat outside the medical record in one place.
02 · What I built
Shifts, assignments, leave, holidays, period locks, overtime and preferred days, per unit.
Documents with classes and kinds, unit dossiers, shared folders with permissions, and an editor for Word files.
Tasks with workers, reviewers, comments, approvals and document versions.
Report an incident, assign co-handlers and follow it through to the end.
Versioned handbooks and norms, plus data protection impact assessments, ready for an audit.
Shifts, tasks and alerts on the ward, with push notifications raised from events in the system.
03 · Key decisions
Instead of patching the old frontend, I rebuilt it from a clean slate against the designs and the real API, and moved the clinics over in one cutover.
Every clinic gets its own PostgreSQL database, found per request by subdomain or token, with its connection details encrypted with AES-256-GCM.
Optional two-factor sign-in, a global JWT guard, role checks, and limits on GraphQL query depth and aliases.
Alerts are raised from domain events and delivered over authenticated GraphQL subscriptions, and as push on mobile.
04 · Stack
05 · Results
Next case study · 07
Learn to invest, like a game
I build healthcare software hands-on, from the data model to the ward.