2026 · INTERNAL TOOLS | EVENT OPS
Picture Day ID Lookup
A once-a-year IT-table tool for picture day: search-as-you-type student lookup, ID-card-number recording, and an Excel export at the end of the day.
Built at Immaculata-La Salle High School

Tech Stack
Overview
On picture day, IT staff sit at a table recording which physical ID card number gets issued to each student, looked up against that year's device roster. I built a search-as-you-type lookup tool with a grade filter, an adaptive ID-number suggestion with duplicate-assignment prevention, and an admin flow to wipe and reimport a fresh roster each year. It shipped and ran on a live picture day, then kept picking up polish afterward: batched imports, progress bars, and a change-history log for admins.
Impact
Who it serves: IT staff at the picture-day table processing all 890 students in one day
Before
IT staff looked students up on a paper roster and hand-logged which ID card number went to whom. Slow under load, and error-prone enough to risk duplicate or misissued cards.
After
Search-as-you-type lookup and adaptive ID-number suggestion with duplicate-assignment prevention move the line faster and remove the paper log entirely.
Est. Annual Cost Saved
$410/yr
Estimate, not an audited figure. Methodology and sources are disclosed above for each comparable product.
What I Built
- Search-as-you-type lookup by name or school ID, filterable by grade
- Adaptive ID-card-number suggestion with duplicate-assignment prevention
- Admin: Excel export, wipe-and-reimport with a review-before-commit step, per-student entry clearing, and a change-history log
- Batched bulk import with a visible progress bar and automatic retry-with-backoff against SharePoint throttling
- Mobile/tablet-optimized layout for use at a physical check-in table
- Self-recovers from a stuck sign-in state instead of leaving the user stuck reloading
Screenshots

What I Learned
SharePoint throttles rapid sequential bulk writes, so batching the import and adding retry-with-backoff turned an unreliable bulk import into a reliable one.
A heuristic last-name split on a full-name CSV field breaks on compound surnames, so I added a review-before-commit screen instead of trusting the heuristic outright.
The Microsoft auth library can get stuck in an 'interaction in progress' state after certain redirect timing. Added an automatic self-recovery path instead of requiring a manual page reload.