docs folder with steps
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
# Шаг 7: Интерфейс прохождения теста
|
||||
|
||||
## Цель
|
||||
|
||||
Реализовать интерфейс для сотрудника, позволяющий проходить назначенные тесты.
|
||||
|
||||
---
|
||||
|
||||
## Задачи
|
||||
|
||||
### 7.1. Начало прохождения
|
||||
|
||||
| Эндпоинт | Метод | Описание |
|
||||
|----------|-------|----------|
|
||||
| `/api/attempts/start` | POST | Начать попытку |
|
||||
| `/api/attempts/:id` | GET | Получить вопросы |
|
||||
|
||||
**Логика:**
|
||||
- Проверить лимит попыток
|
||||
- Создать запись попытки со статусом `in_progress`
|
||||
- Перемешать вопросы в случайном порядке
|
||||
- Запустить таймер (если задан)
|
||||
|
||||
### 7.2. Ответ на вопрос
|
||||
|
||||
| Эндпоинт | Метод | Описание |
|
||||
|----------|-------|----------|
|
||||
| `/api/attempts/:id/answers` | POST | Отправить ответ |
|
||||
| `/api/attempts/:id/answers` | GET | Получить текущий прогресс |
|
||||
|
||||
**Параметры:**
|
||||
- `question_id` — ID вопроса
|
||||
- `selected_options` — массив ID выбранных вариантов
|
||||
|
||||
### 7.3. Навигация
|
||||
|
||||
- Переход к следующему вопросу
|
||||
- Возврат к предыдущему (если `allow_back = true`)
|
||||
- Переход к конкретному вопросу по номеру
|
||||
|
||||
### 7.4. Завершение теста
|
||||
|
||||
| Эндпоинт | Метод | Описание |
|
||||
|----------|-------|----------|
|
||||
| `/api/attempts/:id/complete` | POST | Завершить тест |
|
||||
|
||||
**Логика:**
|
||||
- Проверить ответы на все вопросы
|
||||
- Подсчитать правильные ответы
|
||||
- Вычислить процент
|
||||
- Сравнить с порогом зачёта
|
||||
- Обновить статус попытки на `completed`
|
||||
|
||||
### 7.5. Таймер
|
||||
|
||||
- Обратный отсчёт на фронтенде
|
||||
- При истечении — автоматическое завершение
|
||||
- Проверка на бэкенде при отправке ответа
|
||||
|
||||
### 7.6. Обработка просрочки
|
||||
|
||||
- При запросе списка назначений проверить дедлайн
|
||||
- Если дедлайн прошёл и попытка не завершена — пометить как `expired`
|
||||
|
||||
---
|
||||
|
||||
## Результат
|
||||
|
||||
- Прохождение теста со случайным порядком вопросов
|
||||
- Таймер с автозавершением
|
||||
- Сохранение прогресса
|
||||
- Навигация по вопросам
|
||||
Reference in New Issue
Block a user