2026 · INTERNAL TOOLS | EVENT OPS
Dress Approval
A 4-angle photo submission and staff review flow for event dress-code approval, built first for Homecoming, replacing an in-person walk-by check.
Built at Immaculata-La Salle High School

Tech Stack
Overview
Dress-code approval for events like Homecoming ran as a visual, in-person check with no record of who was reviewed or against what rule. I built a flow where students upload four full-body photos (front, back, left, right) ahead of the event. Each photo is hashed client-side to block duplicate images before upload. Staff review from a searchable, filterable admin queue: approve or reject with a note that's shown back to the student, so a rejection comes with exactly what to fix before resubmitting. Staff and students sign in through separate Azure AD tenants, both routed into the same app. It's one of three sub-apps sharing the 'ILS Activities' Azure Static Web App, alongside Fire Drill Checklist and the Scavenger Hunt.
Impact
Who it serves: Students attending dress-code-governed events (Homecoming first) and the approving staff
Before
Dress-code compliance was checked in person at the door, with no consistent rule application across reviewers, no record of who was checked, and no way for a student to know ahead of time if their outfit would pass.
After
Students submit four photos days ahead and get an Approved/Rejected decision with a specific note if rejected, giving time to fix it before the event, while staff review from one queue with a permanent decision record.
Est. Annual Cost Saved
$1,150/yr
Estimate, not an audited figure. Methodology and sources are disclosed above for each comparable product.
What I Built
- 4-angle (front/back/left/right) full-body photo submission with client-side SHA-256 duplicate-photo detection before upload
- Staff admin queue: search by name, email, or student ID, filter by status, expand a row to view all four photos and leave a reviewer note
- Approve/Reject workflow with the reviewer's note surfaced back to the student on rejection
- Configurable per-event submission window and deadline, enforced both client-side and by the API
- Separate Azure AD tenants for staff and students routed into one app
- Deployed as one of three sub-apps sharing the same 'ILS Activities' Azure Static Web App
What I Learned
Hashing each photo client-side with SHA-256 before submission catches duplicate uploads (e.g. the same photo picked for two angles) without a server round-trip first.
Keeping a per-submission reviewer note visible to the student turned a rejection into something actionable instead of a dead end.
Telling staff and students apart didn't need a manual allowlist, since the sign-in flow already carried that distinction.