31b51b7768
- СПРИНТЫ: remove inline instruction and sprint 4; link to РУКОВОДСТВО + images - Add docs/РУКОВОДСТВО_КАБИНЕТ_ТЕСТОВ.md (user-facing, with SVG refs) - ПРЕДЛОЖЕНИЕ_ДИЗАЙН: актуализация TestDetail/cabinet-theme vs legacy TestForm - PROJECT_STATUS, DEV_CONTOUR, шаги 05+README, migration, README: current block names and links Made-with: Cursor
66 lines
3.2 KiB
Markdown
66 lines
3.2 KiB
Markdown
# Шаг 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](../PROJECT_STATUS.md).*
|
|
|
|
### 5.6. UI кабинета (React, `TestDetail`)
|
|
|
|
- Редактор теста: **`frontend/src/pages/TestDetail.jsx`**, стили **`frontend/src/styles/cabinet-theme.css`**: аккордеоны **«О тесте»**, **«Вопросы»** (в т.ч. **«Документ в вопросы»**), **«История»** (внутри: **Версии** + **Прохождения**), **«Показ в каталоге»** (**Видимость**; при `assignmentUi` — **Кому выдать**), фикс-футер **«Сохранить / К списку»** на моб. ширинах.
|
|
- Сводка мобильного UI и чек-лист: [../СПРИНТЫ_МОБИЛЬНЫЙ_ДИЗАЙН.md](../СПРИНТЫ_МОБИЛЬНЫЙ_ДИЗАЙН.md).
|
|
|
|
## Результат
|
|
|
|
- Полноценный конструктор тестов
|
|
- Версионирование с сохранением истории
|
|
- Управление вопросами и ответами
|
|
|
|
---
|
|
|
|
*Актуальная привязка к коду: [../PROJECT_STATUS.md](../PROJECT_STATUS.md) · индекс шагов: [README.md](README.md).*
|