Commit completed Torbat Pages admin frontend module, BFF proxy, routes, and validation artifacts for official platform deploy. Co-authored-by: Cursor <cursoragent@cursor.com>
56 lines
2.4 KiB
Markdown
56 lines
2.4 KiB
Markdown
# Experience Frontend Validation Report (Quality Report)
|
||
|
||
**Date:** 2026-07-27
|
||
**Scope:** FE-11.0 – FE-11.5 (**STOP**)
|
||
**Backend:** experience-service v0.11.10.0 :8008
|
||
|
||
## Automated checks
|
||
|
||
| Check | Command | Result |
|
||
| --- | --- | --- |
|
||
| Route thinness | `npm run validate:experience-routes` | Pass — `app/experience/**/page.tsx` ≤25 lines |
|
||
| Nav filter | `node modules/experience/__tests__/nav-filter.mjs` | Pass |
|
||
| Accessibility smoke | `node modules/experience/__tests__/a11y-smoke.mjs` | Pass — ARIA roles/labels on DS primitives |
|
||
| Performance smoke | `node modules/experience/__tests__/perf-smoke.mjs` | Pass — ≥49 routes; API via BFF; no fake JSON |
|
||
| Architecture boundaries | `npm run validate:architecture` | Pass |
|
||
| TypeScript | `npm run typecheck` | Pass |
|
||
|
||
Full suite: `npm run validate:experience`
|
||
|
||
## Manual test plan
|
||
|
||
1. **Hub & auth:** `/experience/hub` → login → `/experience` dashboard loads
|
||
2. **Workspace switcher:** select workspace persists after refresh (localStorage)
|
||
3. **CRUD:** create workspace → site → page; edits include `version`
|
||
4. **Builder:** `/experience/pages/{id}/builder` — placements, reorder, media drawer, undo/redo
|
||
5. **Forms:** form builder saves `form_schema_json`; invalid JSON rejected
|
||
6. **Publishing:** publish-targets provisional `publish_id`; preview `/experience/preview/page/{id}`
|
||
7. **Analytics:** refresh snapshots → `POST /api/v1/analytics-snapshots/refresh`
|
||
8. **Embed:** widget snippet with provisional `publish_id`
|
||
9. **Design system:** `/experience/design-system` — RTL/LTR toggle, brand color, charts/map/timeline/kanban
|
||
10. **BFF:** browser calls `/api/experience/...` not direct `:8008`
|
||
|
||
## Seed data
|
||
|
||
```bash
|
||
cd backend/services/experience
|
||
set AUTH_REQUIRED=false
|
||
set EXPERIENCE_SEED_TENANT_ID=<tenant-uuid>
|
||
python scripts/seed_experience.py
|
||
```
|
||
|
||
## Known gaps (by design — stop at FE-11.5)
|
||
|
||
- No official Publish Target Registry — provisional IDs only
|
||
- No payment, booking, QR, short link, marketplace UI
|
||
- Published actions UI is catalog + local toggle only
|
||
- Fine-grained `experience.*` RBAC deferred to identity integration
|
||
|
||
## Artifacts
|
||
|
||
- Module: `frontend/modules/experience/`
|
||
- Routes: `frontend/app/experience/` (50 pages)
|
||
- BFF: `frontend/app/api/experience/[...path]/route.ts`
|
||
- Snapshot: `docs/service-snapshots/experience-frontend.yaml`
|
||
- Handover: `docs/phase-handover/phase-experience-fe-11-5.md`
|