Students tap their ID cards at the gate phone. Each tap lands in the ledger against the card and the phone.
The gate Wi-Fi drops. Taps keep queuing on the phone, each with an id the phone generated.
The gate phone's battery dies. A staff member opens TapKit on a second enrolled phone. It already knows every card, because the registry is the server's.
Wi-Fi is back. The first phone, now charged, replays its queue. Nothing is counted twice.
A parent arrives for a meeting on a visitor pass booked by the office. The staff-room phone announces them to the class teacher.
The office filters today's ledger by the gate phones and exports it as CSV.