TorbatYar/frontend/docs/experience-validation-report.md
Mortezakoohjani 0eec9f729b feat(experience): deploy Experience frontend FE-11.0-11.5 portal
Commit completed Torbat Pages admin frontend module, BFF proxy, routes, and validation artifacts for official platform deploy.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 21:01:50 +03:30

56 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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`