Case study · 03
Hunt Admin Dashboard
A live operations surface for following teams, checkpoints, photos, and the pulse of a campus-wide scavenger hunt.
The challenge
During a campus hunt, administrators need to understand where teams are, which checkpoints they have completed, when photos arrive, and whether the game clock is running, all while the event continues moving.
The dashboard turns several streams of backend data into one shared operational view without competing with the system that runs the participant experience.
Live data matters only when people can act on it.
My contribution
I built the dashboard as a full-stack AWS application, from the Mapbox interface and polling hooks to Lambda routes, CDK infrastructure, and the shared DynamoDB integration.
- Created live team maps, trails, progress views, timers, and checkpoint notifications.
- Implemented event-driven photo notifications from S3 through DynamoDB.
- Added resilient polling with exponential backoff and scoped event handling.
- Designed an additive data model that does not mutate backend-owned game records.
- Separated viewer access from privileged game-control actions.
Architecture
CloudFront serves the React application and routes API requests to Lambda through API Gateway. The dashboard reads game, team, progress, and coordinate data from a shared DynamoDB table. When a checkpoint photo lands in S3, an event-driven Lambda records a checkpoint event that appears in the dashboard feed.
A safe boundary
The participant backend and dashboard share a table, but they do not share ownership. The dashboard observes backend records and writes only two additive item types: checkpoint events and dashboard controls. Start, pause, and reset state live on a dashboard-owned item that is merged at read time.
This boundary prevents an operational tool from accidentally becoming a second writer to core game state while still enabling reliable controls.
Result
Administrators get a single view of location, completion, time, and checkpoint evidence. The interface scales team colors with a golden-angle system, degrades polling safely when services are unavailable, and keeps sensitive controls behind a separate server-validated secret.
Back to project · 01
Urbane Weather
Have a project in mind?