32 lines
1.5 KiB
Markdown
32 lines
1.5 KiB
Markdown
# 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_URL` pointed at the FastAPI v1 root.
|
|
- System-admin tokens may be global with `website_id: null`; React sends `X-Website-ID` only 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 `SafeHtml` component.
|
|
|
|
## 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
|