Problem
Corporate wellness days were being run on paper forms and ad-hoc spreadsheets. Attendees got lost between stations, results were inconsistent, referrals slipped through the cracks, and the post-event report took days to compile. The client needed a single mobile-first system that worked on cheap Android tablets, handled hundreds of attendees per event, and produced clinical-grade documentation the same day.
Approach
I designed and built the full stack as the lead engineer:
- Event lifecycle: Admins create events, configure which clinical stations are enabled, and bulk-import wristband inventory by scanning or pasting codes.
- Pre-registration & check-in: Attendees pre-register via a public link or are walked in on the day. The app auto-allocates the next available wristband from inventory (with a TEMP fallback that gets reconciled later).
- Station flow: Each station has a dedicated form (BP, BMI, HIV, lipids, hearing, eye, lung function, oral health, stress, TB screening) with validation, signature capture for consent, and referral flagging.
- Live analytics: A real-time dashboard (Supabase Realtime + Recharts) shows attendees checked in, fully complete, with referrals, and average completion %. A separate Live Analytics screen drives the on-site TV.
- Reports: Per-attendee Journey Cards and event-level Utilisation Reports render to PDF via @react-pdf/renderer. An edge function calls an LLM to draft an executive summary from the aggregated data.
- Roles & security: Roles (admin, nurse, counsellor, subcontractor) are stored in a dedicated
user_rolestable with ahas_rolesecurity-definer function, and all tables are protected by RLS policies. - Mobile UX: Built as an installable PWA with large touch targets, haptic feedback on scans, camera-based QR scanning via html5-qrcode, and optimistic UI throughout.
Outcome
- Runs full corporate wellness days end-to-end: hundreds of attendees, 10+ clinical stations, real-time dashboards, same-day PDF reports.
- Reduced post-event reporting time from days to minutes.
- Eliminated paper forms across all live events.
- Live in production at healthcareapp.co.za.
- Hardened over real events: race-safe wristband allocation, RLS gap fixes for anon flows, bulk operations for staff invites, and offline-tolerant scanning.
