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.

3.2 KiB

Шаг 5: Управление тестами (админка)

Цель

Реализовать создание и редактирование тестов с вопросами и версионированием.


Задачи

5.1. CRUD тестов

Эндпоинт Метод Описание
/api/tests GET Список тестов
/api/tests POST Создать тест
/api/tests/:id GET Тест с вопросами
/api/tests/:id PUT Редактировать
/api/tests/:id DELETE Деактивировать

5.2. Управление вопросами

  • Добавление/редактирование вопросов к версии теста
  • Минимум 3 варианта ответа на вопрос
  • Указание одного или нескольких правильных ответов
  • Перетаскивание для изменения порядка (drag & drop)

5.3. Версионирование

  • При создании теста — версия 1, помечается как активная
  • При редактировании:
    • Если никто не проходил — изменяется текущая версия
    • Если уже были попытки — создаётся новая версия (version + 1)
  • Переключение активной версии вручную
  • Просмотр истории версий

5.4. Настройки теста

  • passing_threshold — порог зачёта (%)
  • time_limit — таймер в минутах (опционально)
  • allow_back — разрешить возврат к предыдущему вопросу

5.5. Права доступа

  • HR, Manager: могут создавать и редактировать тесты
  • Employee: только прохождение

Фактические маршруты API в TestingWebApp: префикс /api/tests, версии и черновик — см. ../PROJECT_STATUS.md.

5.6. UI кабинета (React, TestDetail)

  • Редактор теста: frontend/src/pages/TestDetail.jsx, стили frontend/src/styles/cabinet-theme.css: аккордеоны «О тесте», «Вопросы» (в т.ч. «Документ в вопросы»), «История» (внутри: Версии + Прохождения), «Показ в каталоге» (Видимость; при assignmentUiКому выдать), фикс-футер «Сохранить / К списку» на моб. ширинах.
  • Сводка мобильного UI и чек-лист: ../СПРИНТЫ_МОБИЛЬНЫЙ_ДИЗАЙН.md.

Результат

  • Полноценный конструктор тестов
  • Версионирование с сохранением истории
  • Управление вопросами и ответами

Актуальная привязка к коду: ../PROJECT_STATUS.md · индекс шагов: README.md.