4eeb3fbc62
Made-with: Cursor
89 lines
4.1 KiB
Markdown
89 lines
4.1 KiB
Markdown
# Декомпозиция доработки (по ТЗ [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)** — дашборды.
|
||
**Этапы 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 |
|