User Registration
New families reach the portal through two public entry points, both linked
from welcome.php (the URL the organization hands out):
- The Inquiry Form (
/inquiry/) — “Request Information.” For families who are curious but not ready to commit. Asks about interest, never quotes a price. - The Registration Form (
/register/) — the full registration wizard. Quotes an itemized price and can take payment on the spot.
Everything is staged
The single most important thing to understand about both forms: neither
creates a live account. Submissions become rows in the
leads and lead_students tables and nothing
else — no users row, no profiles, no reservations. Even a payment made
during registration is held on the lead.
Live data is created only when an admin converts the lead
(Admin > Leads): that creates the parent user (or adopts an existing one
by email), the child users with student profiles and instruments, the
parenthood links, optional reservation placements, and moves any held
payment onto a student’s ledger. See
Convert a Lead to a Family for the
conversion walkthrough.
This staging model has practical benefits:
- Public form spam never pollutes the real roster.
- An admin talks to every family before they become part of the schedule — which matches how BCM actually operates (“earn trust before asking for money”).
- Conversion is idempotent, so a half-finished conversion can simply be re-run.
Registration windows
The registration wizard is only open when the registration_semester_id
setting names a semester; setting it to empty closes public registration. The
inquiry form is always open, and its “which term?” question offers free-text
labels from the inquiry_semester_options setting rather than real semester
rows — so the office can advertise “Fall 2026” before that semester exists in
the system.
