← Swipe·Swipe →

2026 · INTERNAL TOOLS | ADMISSIONS

Open House Registration

A public admissions-funnel form replacing a paper Open House sign-up: multi-student sibling registration, automatic confirmation emails, and a single shared QR code for day-of check-in.

Built at Immaculata-La Salle High School

Private Deployment: Built for Immaculata-La Salle High School
Open House Registration dashboard

Tech Stack

HTML/CSS/JavaScriptAzure FunctionsSharePointMicrosoft GraphCloudflare TurnstileGitHub Pages

Overview

Open House sign-ups ran off a printed, Archdiocese-style paper form that had to be retyped into a spreadsheet before anyone had a real headcount. I replaced it with a public 3-step registration form (Student → Parent/Guardian → Review) that supports registering siblings in one pass, auto-detects Archdiocese of Miami schools to prompt for a shared student information system ID, and sends a confirmation email with the event details and calendar links the moment a family submits. On event day, families check in through a single shared QR code, and admissions staff watch registrant, guest, and check-in totals update live on a dashboard instead of reconciling a headcount afterward.

Impact

Who it serves: Every prospective family registering (siblings included), plus the admissions/front-office staff running day-of check-in

Before

Open House sign-ups ran through a printed, Archdiocese-style paper form handed out and collected in person, then manually retyped into a spreadsheet before anyone could produce a real headcount or a working attendee list for check-in day.

After

Families register online in a guided 3-step form with sibling support and get an automatic confirmation email, then check in on event day via one shared QR code while staff watch registrant, guest, and check-in totals update live.

Est. Annual Cost Saved

$3,000/yr

vs. Formstack Suite (Formstack): est. $3,000/yr. $250/month billed annually, Suite plan, published Formstack pricing page.A cheaper Forms-only tier ($996/year) exists but lacks the custom branding, self-check-in workflow, and submission volume this event actually needs.

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

What I Built

  • 3-step public registration form with multi-student sibling support (up to 5 per submission) and ADOM-school auto-detection prompting a shared student information system ID field
  • Live phone-number formatting and validation across Home/Cell/Office fields
  • Automatic confirmation email with event details, an inline embedded crest, and Google/Apple calendar links, sent via Graph the moment a submission completes
  • Day-of check-in flow with an editable party size, driven by a single shareable QR code with the ILS crest embedded directly in the code
  • Admin dashboard: registrant table, deduplicated guest totals across sibling submissions, check-in stats, and self-service admin management (add/remove admins with no redeploy)
  • Layered bot protection on the public submit endpoint that rejects abuse attempts silently, without revealing which check caught them

What I Learned

Microsoft Graph rejects array values for a multi-select Choice column outright. Converted the column to plain text and joined selections into a delimited string instead of fighting the documented (but broken-in-practice) array format.

Sibling rows from one multi-student submission all shared the same AttendeeCount, so the dashboard's guest total counted each sibling's party size separately, and a 2-sibling '4 attending' submission read as 8. Fixed by adding a SubmissionId column and deduplicating the total by submission, not by row.

Simplified admin management so admins could add or remove each other without needing an elevated, tenant-wide directory permission.

A native window.confirm() on the remove-admin action froze the browser-automation test session mid-test. Replaced with an in-page two-step confirm before shipping.