Preschool Admissions System
A constraint-satisfaction engine that matches hundreds of students to classes in minutes — honoring capacity, grade rules, sibling requests and family schedules that used to eat 20 hours of admin time.
Class assignment was a manual nightmare: 20+ hours per enrollment period spent matching 100+ students to classes from paper preference forms, with overbooked favorites and empty alternatives.
We built a unified platform that digitizes the whole workflow — a parent preference wizard, multi-strategy matching algorithms, bulk import, and real-time analytics — turning a 20-hour ordeal into a two-minute run.
Every part of the old process created friction and unfairness.
Manual matching
20+ hours per period assigning students by hand from paper forms.
Capacity conflicts
Popular classes overbooked while others sat empty.
Communication overhead
Constant calls and emails about schedules and availability.
Sibling coordination
No mechanism to keep siblings in the same class.
A unified platform that digitizes the entire enrollment workflow.
- A constraint-satisfaction engine with five strategies, from fair-randomized to equity-weighted.
- A guided parent preference wizard with companion (sibling/friend) requests.
- CSV bulk import that auto-creates parent accounts and detects duplicates.
- Real-time analytics on distribution, match rate and satisfaction.
What we built, in detail.
Multi-phase matching algorithm
Five modes including Fair-Randomized, Equity-Weighted and Hybrid-Fair, with two-phase priority matching and dedup logic.
Role-based portals
Tailored views for admins, teachers and parents with scrypt-hashed auth and protected routes.
Parent preference wizard
A guided 4–5 step flow for availability, class rankings and companion requests, validated live.
Bulk student import
Onboard hundreds via CSV with header validation, auto-created accounts and grade checks.
Equity-first guarantee
A three-phase mode that ensures every student receives at least one class, even under severe capacity limits.
System lock mode
Freeze parent access during matching to guarantee data consistency.