You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
5 days ago | |
|---|---|---|
| .. | ||
| src | 5 days ago | |
| .env.example | 5 days ago | |
| README.md | 5 days ago | |
| components.json | 5 days ago | |
| next-env.d.ts | 5 days ago | |
| next.config.mjs | 5 days ago | |
| package.json | 5 days ago | |
| postcss.config.mjs | 5 days ago | |
| tailwind.config.ts | 5 days ago | |
| tsconfig.json | 5 days ago | |
| tsconfig.tsbuildinfo | 5 days ago | |
README.md
web-admin
Next.js 15 App Router + shadcn/ui (стиль new-york, base neutral) + Recharts + TanStack Query.
Порт: 3001 (3000 занят hr_v2_next).
Запуск
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) |