← Swipe·Swipe →

2026 · INTERNAL TOOLS | EVENT OPS

ILS Scavenger Hunt

A photo-submission scavenger hunt for a scheduled school event window, with an admin override to open submissions early or late.

Built at Immaculata-La Salle High School

Private Deployment: Built for Immaculata-La Salle High School
ILS Scavenger Hunt dashboard

Tech Stack

ViteReactTypeScriptAzure FunctionsAzure ADMSALMicrosoft Graph

Overview

Built for a scheduled school activity where students submit up to 10 distinct photos, grade-tagged, during a fixed daily window (2:15–3:30pm ET). Each photo is hashed client-side to block duplicate submissions, enforcing the 'no repeats' rule automatically instead of leaving it to staff to eyeball. Staff get an admin queue to review submissions and a window-override toggle to open submissions outside the scheduled hours when the day's actual schedule shifts. It's one of three sub-apps sharing the 'ILS Activities' Azure Static Web App alongside Fire Drill Checklist and Dress Approval.

Impact

Who it serves: 890 students

Before

A scavenger-hunt-style activity would normally run on paper or a generic form tool with no duplicate-detection and no automatic window enforcement.

After

Students submit through a purpose-built flow that blocks duplicate photos and enforces the scheduled window automatically, with staff able to override the window in one click if the day runs long or short.

Est. Annual Cost Saved

$749/yr

vs. Goosechase ("School 500" tier) (Goosechase): est. $749/yr. $749/year, up to ~500 participants, per third-party pricing aggregators.Not Goosechase's own published price (their site lists Free, a $99/year single-classroom tier, and custom Schools & Districts quotes). Treat this as a floor, not an exact match, since ILS's 890 students exceed the 500-participant cap this figure is based on.

Estimate, not an audited figure. Methodology and sources are disclosed above for each comparable product.

What I Built

  • Grade-tagged photo submissions (up to 10 photos) with client-side SHA-256 hashing to block duplicate images before upload
  • Scheduled submission window (2:15–3:30pm ET) enforced both client- and server-side, with a staff override to force it open regardless of the clock
  • Staff admin queue for reviewing submissions by grade
  • Shared sign-in and rehearsal pattern with the other ILS Activities apps, so staff screens can be tested ahead of the event
  • Post-launch fix: corrected a grade-column display bug found after the event went live

What I Learned

Hashing every photo client-side made 'no duplicate photos' an enforceable rule instead of an honor-system checkbox, the same pattern reused from Dress Approval.

A hard-coded submission window needed an admin override from day one, since a real event's actual schedule shifts and staff shouldn't be blocked from opening it manually.