1.5 KiB
1.5 KiB
Frontend Migration Cutover Notes
Route Ownership
- React owns browser-facing admin routes under
/admin/*and student routes under/student/*. - FastAPI owns JSON APIs under
/api/v1/*. - The legacy Python admin remains available as fallback until React parity smoke tests are accepted.
Local Development
- React Vite dev server:
http://127.0.0.1:5173 - Backend API root:
http://localhost:8000/api/v1 - Frontend API config should keep
VITE_API_URLpointed at the FastAPI v1 root. - System-admin tokens may be global with
website_id: null; React sendsX-Website-IDonly when the website selector has an explicit website.
Cutover Guardrails
- Do not disable the legacy admin until React covers import, snapshot promotion, question detail, AI review, reports, normalization, settings, and student session smoke tests.
- Avoid adding new frontend calls to legacy or nonexistent API paths. New React API calls should map to OpenAPI paths.
- Website-scoped React Query keys must include the selected website ID and should be gated until a website is selected.
- Any page rendering question HTML must use the shared
SafeHtmlcomponent.
Smoke Coverage Used During Migration Fix
- Admin dashboard
- Global questions list and question detail
- Data overview hierarchy
- AI review, variants, and run history
- Excel import
- Tryout questions, snapshot promotion, settings, normalization, and AI workspace
- Student tryout list, session start, next item, answer submission, completion, and result summary