docs: card1 (версии, документ, auth Postgres_TG_Bots); миграция 002 parent_id+unique active; спринт1+бэклог под Node

Made-with: Cursor
This commit is contained in:
Константин Лебединский
2026-04-24 19:17:46 +05:00
parent 93dcfcf4ff
commit 4eeb3fbc62
4 changed files with 238 additions and 0 deletions
+88
View File
@@ -0,0 +1,88 @@
# Декомпозиция доработки (по ТЗ [revision_task/task.md](task.md))
**Стек (репозиторий [TestingWebApp](../..)):** **Node.js** (backend), **PostgreSQL**, **Docker**; фронт — desktop-first SPA. Экосистема клиники: см. [HR_TG_Bot README](../../../HR_TG_Bot/README.md); перенос на Python/FastAPI **не** считается обязательным для этого репо — **контракт** данных и [card1.md](revision_task/card1.md) важнее.
**Карта больших кусков работ:** [card1.md](card1.md) (версии **V**, документ **D**, авторизация **HR A**).
**Этап 1 (ТЗ §4)** — пять фич: 4.1–4.5 (части можно параллелить).
**Этап 2 (ТЗ §5)** — дашборды.
**Этапы 35** — интеграция в общий HR, MAX, уведомления.
**Первые спринты:** [sprint-01.md](sprint-01.md), [sprint-02.md](sprint-02.md) (и при наличии `sprint-02-testing`).
---
## A. Подготовка и база (фундамент)
| ID | Подзадача |
| --- | --- |
| A.1 | Репозиторий, Docker Compose (PostgreSQL), .env, health |
| A.2 | Схема БД, миграции: пользователи, подразделения, тесты, версии, попытки (см. [card1 V.1](card1.md)) |
| A.3 | Аутентификация: **локальная** **или** **через** [Postgres_TG_Bots](card1.md#часть-a--авторизация-по-паролю-бд-postgres_tg_bots) ([card1 A.x](card1.md)) |
| A.4 | CRUD тест/назначение/прохождение (база шагов `docs/шаги/`) + затем **B** |
*Если A.1–A.4 частично сданы — добить по [sprint-01](sprint-01.md) и [card1](card1.md).*
---
## B. Фича 4.1 — Версионирование тестов
См. полностью [card1.md — Часть V](card1.md#часть-v--версионирование-цель-корректная-история-при-правках-автора) (V.1V.10).
---
## C. Фича 4.2 — AI-помощник (DeepSeek)
| ID | Подзадача |
| --- | --- |
| C.1 | Ключ в БД; `/settings`; «Проверить»; ключ не на фронт |
| C.2 | OpenAI-совместимый клиент, `json_object` |
| C.3 | Сгенерировать/проверить/улучшить тест; модалки, было→стало |
| C.4 | Вопрос: улучшить, дистракторы, подсказка (с 4.4) |
*Импорт из документа ([card1 D](card1.md)) тянет C.1C.3.*
---
## D. Импорт из документа
См. [card1 D.1D.5](card1.md#часть-d--загрузка-документа--черновик-теста).
---
## E–F. Подсказки и режимы (§4.4–4.5)
| ID | Кратко |
| --- | --- |
| E.x | Подсказка в вопросе, показ по режиму |
| F.x | Таймер, мгновенная оценка, итог в конце |
---
## G. Этап 2 — Дашборды (§5)
| ID | Подзадача |
| --- | --- |
| G.1 | Дашборд сотрудника |
| G.2 | Руководитель подразделения |
| G.3 | Директор / вся клиника |
---
## H. Спринт 1 — сопоставление
| Спринт | Охват |
| --- | --- |
| **Спринт 1** | A (дозакрытие) + **B** = [card1 V](card1.md) + при согласовании [A](card1.md) (Postgres_TG_Bots) |
| **Спринт 2** | **C** + начало D при наличии LLM; иначе D без генерации = только текст/ручной ввод |
| Далее | E, F, G, интеграция MAX, уведомления |
---
## Сопоставление с файлами
| Документ | Содержание |
| --- | --- |
| [card1.md](card1.md) | Задачи Card 1: версии, документ, auth HR |
| [sprint-01.md](sprint-01.md) | Спринт 1, кратко |
| [task.md](task.md) | ТЗ 1.0 |