Initial commit: digital reception monorepo (M1-M11 + demo extensions)
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
# web-admin
|
||||
|
||||
Next.js 15 App Router + shadcn/ui (стиль `new-york`, base `neutral`) + Recharts + TanStack Query.
|
||||
|
||||
Порт: **3001** (3000 занят `hr_v2_next`).
|
||||
|
||||
## Запуск
|
||||
|
||||
```bash
|
||||
pnpm --filter=@reception/web-admin dev
|
||||
# → http://localhost:3001
|
||||
```
|
||||
|
||||
Логин: dev-юзеры из `packages/db/prisma/seed.ts`:
|
||||
- `senior@local / senior123` — Старший администратор (видит Enrollment, Пациенты)
|
||||
- `manager@local / manager123` — Управляющий (Дашборд, Пациенты)
|
||||
- `admin@local / admin123` — Админ системы (Аудит, Пациенты)
|
||||
- `security@local / security123` — Безопасность (Инциденты)
|
||||
|
||||
## Структура
|
||||
|
||||
```
|
||||
src/
|
||||
app/
|
||||
layout.tsx # root layout с ThemeProvider + Toaster
|
||||
page.tsx # redirect по роли
|
||||
login/page.tsx # вход
|
||||
(authed)/
|
||||
layout.tsx # серверный гард + AppShell
|
||||
dashboard/page.tsx # Управляющий
|
||||
enrollment/page.tsx # Старший администратор (M10)
|
||||
patients/ # M11
|
||||
incidents/page.tsx # Безопасность (заглушка)
|
||||
audit/page.tsx # Админ системы (M11)
|
||||
components/
|
||||
app-shell.tsx # сайдбар + топбар (фильтр nav по роли)
|
||||
login-form.tsx # форма входа
|
||||
theme-provider.tsx # next-themes
|
||||
ui/ # shadcn компоненты
|
||||
lib/
|
||||
auth.ts # серверные actions: login/logout/getCurrentUser
|
||||
api.ts # серверный fetch с проксированием cookies
|
||||
utils.ts # cn, formatDateTime, formatDuration
|
||||
middleware.ts # редирект на /login если нет access_token
|
||||
```
|
||||
|
||||
## Эндпоинты apps/api, используемые в web-admin
|
||||
|
||||
| Метод | Путь | Где |
|
||||
|---|---|---|
|
||||
| `POST` | `/auth/login` | login form (server action) |
|
||||
| `POST` | `/auth/logout` | header logout (server action) |
|
||||
| `GET` | `/auth/me` | `getCurrentUser()` |
|
||||
| `GET` | `/tracks?status=UNMATCHED` | /enrollment (M10) |
|
||||
| `GET` | `/polimed/appointments?date=...` | /enrollment (M10) |
|
||||
| `POST` | `/enrollment` | /enrollment submit (M10) |
|
||||
| `GET` | `/patients` | /patients (M11) |
|
||||
| `GET` | `/patients/:id/visits` | /patients/:id (M11) |
|
||||
| `POST` | `/consents/:patientId/revoke` | /patients revoke (M11) |
|
||||
| `GET` | `/audit/biometry` | /audit (M11) |
|
||||
Reference in New Issue
Block a user