79 lines
2.2 KiB
Markdown
79 lines
2.2 KiB
Markdown
# Шаг 8: Результаты и разбор ошибок
|
||
|
||
## Цель
|
||
|
||
Реализовать отображение результатов теста и разбора ответов сотруднику.
|
||
|
||
---
|
||
|
||
## Задачи
|
||
|
||
### 8.1. Просмотр результатов
|
||
|
||
| Эндпоинт | Метод | Описание |
|
||
|----------|-------|----------|
|
||
| `/api/attempts/:id/result` | GET | Получить результат |
|
||
|
||
**Ответ:**
|
||
```json
|
||
{
|
||
"test_title": "Название теста",
|
||
"version": 1,
|
||
"correct_count": 8,
|
||
"total_questions": 10,
|
||
"percentage": 80,
|
||
"passed": true,
|
||
"passing_threshold": 75,
|
||
"completed_at": "2026-03-21T10:30:00Z"
|
||
}
|
||
```
|
||
|
||
### 8.2. Разбор ошибок
|
||
|
||
| Эндпоинт | Метод | Описание |
|
||
|----------|-------|----------|
|
||
| `/api/attempts/:id/review` | GET | Получить разбор |
|
||
|
||
**Ответ:**
|
||
```json
|
||
{
|
||
"questions": [
|
||
{
|
||
"id": "uuid",
|
||
"text": "Текст вопроса",
|
||
"user_selected": ["option_id_1", "option_id_2"],
|
||
"correct_options": ["option_id_1", "option_id_3"],
|
||
"is_correct": false,
|
||
"options": [
|
||
{ "id": "option_id_1", "text": "Вариант А", "is_correct": true },
|
||
{ "id": "option_id_2", "text": "Вариант Б", "is_correct": false },
|
||
{ "id": "option_id_3", "text": "Вариант В", "is_correct": true }
|
||
]
|
||
}
|
||
]
|
||
}
|
||
```
|
||
|
||
### 8.3. Логика отображения
|
||
|
||
- Сразу после завершения — перенаправление на страницу результатов
|
||
- Показывать балл, процент, зачёт/не зачёт
|
||
- Для каждого вопроса:
|
||
- Выбранные ответы сотрудника
|
||
- Правильные ответы
|
||
- Индикатор правильно/неправильно
|
||
- Все варианты ответов с подсветкой
|
||
|
||
### 8.4. Доступ
|
||
|
||
- Сотрудник видит только свои результаты
|
||
- Результаты доступны после завершения попытки
|
||
|
||
---
|
||
|
||
## Результат
|
||
|
||
- Итоговый балл и процент
|
||
- Статус зачёта
|
||
- Полный разбор по каждому вопросу
|