What it does
Security volunteers scan badges at gate checkpoints to verify credentials and track entry. The system needs to work continuously during a three-day event regardless of network conditions.
Offline-first architecture
This app was built around the assumption that the network will fail. It uses IndexedDB and a service worker to cache the full roster locally so scanning continues even without connectivity. Background sync pushes queued scans when the network returns, with conflict resolution for any overlapping records.
Technical details
- Full roster cached in IndexedDB on first load
- Service worker intercepts fetch requests and serves cached data when offline
- Background sync pushes queued scans on reconnection
- Cloudflare Workers API for roster management and scan logging
- D1 stores the authoritative roster and scan history
- Tested on Chrome, Safari, and Amazon Silk (Kindle Fire tablets used at gates)