feat: email verification before payment — prevent invalid email registrations #114
Labels
No labels
domain:backend
domain:devops
domain:frontend
status:approved
status:in-progress
status:needs-fix
status:qa
type:bug
type:devops
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
forgejo_admin/basketball-api#114
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Type
Feature
Lineage
plan-wkq→ Phase 11 → Discovered ScopeRepo
forgejo_admin/basketball-apiUser Story
As a program administrator
I want parents to verify their email before paying
So that we don't send confirmation emails to invalid addresses and flood our Gmail with bounces
Context
Production problem: parents enter typo'd or invalid emails → register and pay → system sends confirmation email → Gmail bounces → Marcus's inbox fills with bounce notifications → parent never gets credentials and is locked out. No way to recover without manual intervention.
Current flow: form → pay → send email (no verification)
Required flow: form → verification email with link → parent clicks link → THEN pay → send credentials
File Targets
Files to modify:
src/basketball_api/routes/register.py— add email verification step before paymentsrc/basketball_api/models.py— may need email_verified field on Parentsrc/basketball_api/services/email.py— new verification email templateFiles in westside-app:
src/routes/register/+page.svelte— new "check your email" intermediate stepAcceptance Criteria
Test Expectations
pytest tests/test_promo_registration.py -vConstraints
Checklist
Related
westside-basketball— projectClosing — superseded by #129 (enterprise login). Keycloak-first registration handles email verification natively. PR #162 held, not merged.