# Декомпозиция доработки (по ТЗ [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**). **Идеи и пожелания (простой язык):** [BACKLOG_IDEAS.md](BACKLOG_IDEAS.md) **Журнал проверок по спринтам (авто + ручные шаги для заказчика):** [TESTING_JOURNAL.md](TESTING_JOURNAL.md) **Этап 1 (ТЗ §4)** — пять фич: 4.1–4.5 (части можно параллелить). **Этап 2 (ТЗ §5)** — дашборды. **Этапы 3–5** — интеграция в общий 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.1–V.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.1–C.3.* --- ## D. Импорт из документа См. [card1 D.1–D.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 |