CW Guarding · March 2023
Getting guard check-ins off paper and into real time
A FlutterFlow and Firebase platform for guard management, with push-driven dispatch replacing radio and paper logs.
- Role
- Sole developer
- Team
- Solo
- Timeline
- March 2023
The problem
Guarding operations ran on radio calls and paper logs. Control room staff had no reliable picture of who was on site, when they had last checked in, or whether an incident had been acknowledged — and reconstructing any of it after the fact meant reading handwriting.
Constraints
- Guards use low-end Android devices on patchy mobile data
- Control room staff are not technical and turnover is high, so the UI has to be obvious
- An incident notification that arrives late is worse than useless
- This was one of my first complete projects — I was learning the platform while building on it
Approach
Check-ins and incidents became structured records rather than radio traffic, with push notifications carrying dispatch to the right guard rather than broadcasting to everyone. Cloud Functions handled the fan-out server-side so the sending device didn't need to know the recipient list, and the control room got a live view rather than a report they had to ask for.
What I rejected, and why
Client-side notification sending
It puts the recipient list and the credentials on the guard's device, and it silently fails whenever that device is offline — which is exactly when dispatch matters.
The hard part
Notification delivery you can actually rely on. Push is best-effort by design: devices sleep, Android kills background work aggressively on low-end hardware, and mobile data drops mid-patrol. Making dispatch dependable meant treating delivery as unreliable and building acknowledgement into the flow, so the control room sees whether a notification was received rather than assuming it was.
What I'd do differently
This project taught me that push notifications are a delivery attempt, not a delivery. Every system I've built since treats acknowledgement as the thing that matters and the notification as merely the prompt.
Stack
- FlutterFlow
- Firebase
- Cloud Functions
- Android
- Automation