Initial commit: digital reception monorepo (M1-M11 + demo extensions)

This commit is contained in:
2026-05-25 12:59:54 +05:00
commit b9f88194d9
182 changed files with 20578 additions and 0 deletions
+78
View File
@@ -0,0 +1,78 @@
# Digital Reception — Фаза 1
Видеоаналитика рецепции клиники: распознавание лиц, ручной enrollment, согласия, история визитов. Компонент Платформы цифровых сервисов клиники (ПЦС).
ТЗ: [`TZ (1).md`](./TZ%20(1).md).
План разработки: `~/.claude/plans/plan-mode-reflective-wand.md`.
## Стек
- **Монорепо:** pnpm workspaces + Turborepo.
- **БД:** PostgreSQL 16 + pgvector, Prisma 5.
- **Backend:** NestJS 10 (`apps/api`, `apps/polimed-mock`), Python + FastAPI (`apps/face-service`, `apps/video-ingest`).
- **Frontend:** Next.js 15 (App Router) + shadcn/ui + Recharts (`apps/web-admin`).
- **Очереди:** BullMQ (Redis).
- **Хранилище кадров:** MinIO (S3-совместимое).
- **Распознавание лиц:** InsightFace `buffalo_l`, 512-d cosine.
## Структура
```
apps/
api/ # NestJS — auth, RBAC, треки, согласия, визиты, аудит
face-service/ # Python FastAPI — InsightFace + pgvector + re-id
polimed-mock/ # NestJS — мок МИС Полимед (вне скоупа Ф1)
video-ingest/ # Python — минимальный mp4-консьюмер (скаффолд)
fixtures-runner/ # Node — e2e сценарии треков и событий
web-admin/ # Next.js 15 + shadcn/ui — админка
packages/
db/ # Prisma schema, миграции, сид
ui/ # shadcn/ui компоненты (shared)
tsconfig/ # base / nest / next tsconfig пресеты
eslint-config/ # общий ESLint
docker/
docker-compose.yml # postgres + redis + minio
init.sql # CREATE EXTENSION vector
```
## Быстрый старт
```bash
# 1. Инфраструктура
cp .env.example .env
pnpm docker:up # postgres+redis+minio
# 2. Зависимости
pnpm install
# 3. БД
pnpm db:migrate # создаёт схему
pnpm db:seed # 4 юзера, 3 камеры, 3 зоны
# 4. Сервисы (каждый в своём терминале)
pnpm --filter=@reception/api dev
pnpm --filter=@reception/polimed-mock dev
pnpm --filter=@reception/web-admin dev
# face-service:
cd apps/face-service && uvicorn main:app --reload --port 8001
```
## Контроль доступа
Сидер создаёт 4 dev-пользователя (пароли в `.env.example`):
| Email | Роль | Что видит |
|-------------------|---------------|---------------------------------|
| `manager@local` | MANAGER | Дашборд, история визитов |
| `senior@local` | SENIOR_ADMIN | Enrollment, согласия |
| `security@local` | SECURITY | Лента инцидентов (Ф2) |
| `admin@local` | SYSADMIN | Аудит, пользователи, камеры |
## Скоуп Фазы 1
-`face-service` + pgvector + cross-camera re-id.
- ✅ Web-admin: ручной enrollment, согласия, история визитов, аудит.
- ✅ Фиксация бумажных согласий, отзыв → удаление эмбеддингов за 24 ч.
- 🚫 **Полимед API** — замокан `apps/polimed-mock`, реальной интеграции нет.
- 🚫 **RTSP / GPU / ByteTrack** — работа Фазы 0, в Ф1 только минимальный mp4-скаффолд.
- 🚫 **Поведенческие алерты (Max-бот)** — Фаза 2.