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.
9.3 KiB
9.3 KiB
Состояние проекта (человеческий обзор)
Репозиторий: TestingWebApp · ветка разработки: dev
Дата среза: 2026-04-24
Этот документ — не дублирование ТЗ, а короткое объяснение, что уже работает в коде и что логично делать дальше. Подробные задачи: revision_task/card1.md, revision_task/BACKLOG.md.
Что уже сделано (как это устроено)
Вход и роли
- Сотрудник входит по логину и паролю (сессия через cookie + JWT).
- В шапке показываются роль и Фамилия с инициалами (например, Иванов И. О.), полное ФИО — во всплывающей подсказке.
- В режиме разработки (
NODE_ENV=development) у удобного тестирования могут быть дополнительные кнопки (например, создание теста сотрудником —devUiв ответе/api/auth/me).
«Цепочка» теста и черновики
- У каждого теста есть одна логическая цепочка в базе: все правки вопросов относятся к ней, но версия контента (
v1,v2, …) может расти. - Пока никто не проходил этот тест — автор правит на месте: сохраняет черновик, и меняется текущая активная версия без лишнего дублирования строк в истории.
- Как только по цепочке появилась хотя бы одна завершённая попытка — каждое содержательное сохранение с изменениями создаёт новую версию (новый номер, старая остаётся в истории). Старые результаты остаются привязаны к той версии, с которой человек реально отвечал.
- Активная версия — та, с которой сейчас стартуют новые попытки. Автор может вручную переключить активную версию в таблице истории (с подтверждением), если бизнесу так нужно.
- Публикация / видимость: в кабинете (аккордеон «Показ в каталоге», подсекция «Видимость») тест можно скрыть из общего списка (цепочка остаётся в базе) или снова показать; назначения (подсекция «Кому выдать») — при включённой фиче, см. раздел «Назначения» ниже.
- Мобильный UI кабинета (колонка списка на узком экране, фикс-футер, группировка разделов, копи): СПРИНТЫ_МОБИЛЬНЫЙ_ДИЗАЙН.md · РУКОВОДСТВО_КАБИНЕТ_ТЕСТОВ.md (тезисы для врачей/кураторов).
Список тестов и доступ
- В каталоге «Тесты» видны цепочки, где вы автор, и тесты, назначенные вам (через назначение на пользователя; в dev назначения обычно включены).
- Под названием показывается «Автор: Вы» для своих тестов и «Автор: Фамилия И. О.» для чужих (назначенных).
- Пройти тест — кнопка справа в строке; карточка теста — клик по названию слева (попытка с карточки не стартует сама).
Прохождение и результат
- Открывается экран вопросов (один или несколько верных вариантов); после «Завершить тест» — итог: сколько верно, процент, зачёт по порогу.
- Разбор: после сдачи показывается, по каждому вопросу, что выбрал пользователь и какие варианты верны. Отдельная страница разбора доступна по ссылке; автор в аккордеоне «История» (подсекция «Прохождения») видит завершённые попытки и кнопку «Разбор» (раньше секция называлась «Прогоны и разбор»).
Импорт и ИИ (MVP)
- Можно загрузить файл (PDF, DOCX, текст): сервер извлекает текст и при настроенном ключе LLM (например,
DEEPSEEK_API_KEY/OPENAI_API_KEYв окружении) предлагает черновик вопросов. В UI: подсекция «Документ в вопросы» внутри «Вопросы» (раньше — отдельный блок «Импорт из файла»). Дальше тот же поток, что и при ручном редактировании: правки → сохранить черновик (с учётом правил версий выше). - Полный набор сценариев из ТЗ (отдельная страница настроек ключа, «проверить тест целиком», модалки с чекбоксами и т.д.) — в sprint-02; часть уже заложена в сервисах, UI доводится.
Назначения (MVP)
- Автор в «Показ в каталоге» → «Кому выдать» может назначить сотрудников из справочника (поиск, фильтры, «Выбрать всех» в текущем списке; в dev — при включённой фиче в
docker-compose/.env). Назначение не перепривязывается автоматически к каждой новой версии контента: старт попытки всегда берёт текущую активную версию на момент нажатия «Пройти».
Интеграция с HR (в зачатке)
- Поддержан сценарий входа через учётки HR (
HR_AUTH+HR_DATABASE_URL) для проверок на одном кластере Postgres с экосистемойPostgres_TG_Bots(см. README — установка). - Целевой RBAC из HR-таблиц — card1, часть A; сейчас — упрощённое сопоставление ролей.
Что в планах (логичный следующий слой)
| Направление | Суть |
|---|---|
| AI по ТЗ §4.2 | Ключ в настройках (не на клиенте), кнопки «сгенерировать/проверить/улучшить» с превью и подтверждением, регресс с версиями. |
| Дашборды (ТЗ этап 2) | Единая картина по отделу / клинике, фильтры, история. |
| MAX / мини-приложение | Встраивание в общий HR-контур клиники. |
| Таймер, подсказки, медиа в вопросах | Режимы прохождения и вложения — отдельные этапы ТЗ. |
| E2E и интеграционные тесты | Расширение V.9, стабильный CI. |
| Назначения | Сроки, лимит попыток, назначения «по отделу» (частично в бэклоге BACKLOG_IDEAS). |
Журнал приёмок и чек-листы: TESTING_JOURNAL.md.