
The problem
Gates are where the signal is worst. They sit at the perimeter, often in metal structures, frequently far from anything. A visitor log that needs a connection is a log that fails exactly where it is used.
So entries were written on paper and keyed in later. That delay is the whole problem: during it, nobody can answer who is currently on site: the one question a visitor log exists to answer, and the one that matters most during an evacuation.
Building this online-first and adding offline later would not have worked. Offline changes where data gets written and when it is considered saved, and that is not something you retrofit onto a finished app.
The solution
An app that treats the absence of a connection as normal rather than as an error. The guard’s experience is identical either way; the difference is only in when the record reaches the server.
Canvas App on the phone
Capture designed for one hand, at a gate, possibly at night. Where the visitor is heading on site, how many of them there are, how many are in the vehicle, the plate number. Nothing that is not needed at the moment of capture.
Offline-first data handling
Records are written locally first and queued for sync, so submission never depends on the connection. This is the design decision the whole app is shaped around, not a feature added to it.
Questions set by the administrators
What the guard asks is not fixed in the app. The questions come from what an administrator configured for that gate, so a site that starts asking something new does not need a release to do it.
A record that spans two gates
A visitor arriving at the main gate opens a record that is deliberately incomplete. Reaching the inner gate they were headed for completes it and closes it out. Each gate has its own guard, so the handover is sequential rather than two people writing the same record at once.
Visible sync state
The guard can see whether a record is pending or synced. Without that, offline behaviour looks like data loss, and an app people do not trust gets worked around.
The result
The paper stage is gone, and with it the window where the site had no current picture of who was on it.
Guards record at the gate without checking whether they have signal first, because the app behaves the same either way.
Entries reach Dataverse on their own once the device reconnects, so the log is a live record rather than a backlog someone has to work through.
Outcomes here are described in kind rather than in numbers. I don’t have permission to publish this client’s measurements, and inventing figures to fill the gap would make the rest of this page worth less.
Last updated