54 lines
1.9 KiB
Markdown
54 lines
1.9 KiB
Markdown
# admin-compliance
|
|
|
|
Next.js 15 dashboard for BreakPilot Compliance — SDK module UI, company profile, DSR, DSFA, VVT, TOM, consent, AI Act, training, audit, change requests, etc. Also hosts 96+ API routes that proxy/orchestrate backend services.
|
|
|
|
**Port:** `3007` (container: `bp-compliance-admin`)
|
|
**Stack:** Next.js 15 App Router, React 18, TailwindCSS, TypeScript strict.
|
|
|
|
## Architecture (Phase 3 — in progress)
|
|
|
|
```
|
|
app/
|
|
├── <route>/
|
|
│ ├── page.tsx # Server Component (≤200 LOC)
|
|
│ ├── _components/ # Colocated UI, each ≤300 LOC
|
|
│ ├── _hooks/ # Client hooks
|
|
│ └── _server/ # Server actions
|
|
├── api/<domain>/route.ts # Thin handlers → lib/server/<domain>/
|
|
lib/
|
|
├── <domain>/ # Pure helpers, zod schemas
|
|
└── server/<domain>/ # "server-only" logic
|
|
components/ # App-wide shared UI
|
|
```
|
|
|
|
See `../AGENTS.typescript.md`.
|
|
|
|
## Run locally
|
|
|
|
```bash
|
|
cd admin-compliance
|
|
npm install
|
|
npm run dev # http://localhost:3007
|
|
```
|
|
|
|
## Tests
|
|
|
|
```bash
|
|
npm test # Vitest unit + component tests
|
|
npx playwright test # E2E
|
|
npx tsc --noEmit # Type-check
|
|
npx next lint
|
|
```
|
|
|
|
## Known debt
|
|
|
|
- `lib/sdk/types.ts` has been split: it is now a barrel re-export to `lib/sdk/types/` (12 domain files: enums, company-profile, sdk-steps, and others).
|
|
- `lib/sdk/tom-generator/controls/loader.ts` has been split: it is now a barrel re-export to `categories/` (8 category files).
|
|
- Phase 3 refactoring is ongoing — several large page files remain and are being addressed incrementally.
|
|
- **0 test files** for the page layer. Adding Playwright smoke + Vitest unit coverage is ongoing Phase 3 work.
|
|
|
|
## Don't touch
|
|
|
|
- Backend API paths without updating `backend-compliance/` in the same change.
|
|
- `lib/sdk/types/` barrel re-exports — add new types to the appropriate domain file, not back into the root.
|