Files
TestingWebApp/docs/шаги/05-test-management.md
T
Константин Лебединский a68331c86b docs: статус проекта, инструкция dev, обновление всех .md
- PROJECT_STATUS: что сделано (черновики, версии, разбор, каталог) и планы
- DEV_CONTOUR_USER_GUIDE: сценарии для проверяющих на dev-стенде
- README, ТЗ, card1, журнал, бэклоги, шаги 01–11+README, спринты, TEST_TABLES: ссылки и примечания
- backend/PROGRESS: ссылка на PROJECT_STATUS

Made-with: Cursor
2026-04-24 22:12:06 +05:00

61 lines
2.5 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).*
## Результат
- Полноценный конструктор тестов
- Версионирование с сохранением истории
- Управление вопросами и ответами
---
*Актуальная привязка к коду: [../PROJECT_STATUS.md](../PROJECT_STATUS.md) · индекс шагов: [README.md](README.md).*