a68331c86b
- PROJECT_STATUS: что сделано (черновики, версии, разбор, каталог) и планы - DEV_CONTOUR_USER_GUIDE: сценарии для проверяющих на dev-стенде - README, ТЗ, card1, журнал, бэклоги, шаги 01–11+README, спринты, TEST_TABLES: ссылки и примечания - backend/PROGRESS: ссылка на PROJECT_STATUS Made-with: Cursor
85 lines
2.6 KiB
Markdown
85 lines
2.6 KiB
Markdown
# Шаг 8: Результаты и разбор ошибок
|
||
|
||
## Цель
|
||
|
||
Реализовать отображение результатов теста и разбора ответов сотруднику.
|
||
|
||
**Реализация в dev:** ответ `POST …/attempts/:id/submit` включает поле `review`; отдельно `GET /api/tests/:testId/attempts/:attemptId/review` (см. [../PROJECT_STATUS.md](../PROJECT_STATUS.md)).
|
||
|
||
---
|
||
|
||
## Задачи
|
||
|
||
### 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. Доступ
|
||
|
||
- Сотрудник видит только свои результаты
|
||
- Результаты доступны после завершения попытки
|
||
|
||
---
|
||
|
||
## Результат
|
||
|
||
- Итоговый балл и процент
|
||
- Статус зачёта
|
||
- Полный разбор по каждому вопросу
|
||
|
||
---
|
||
|
||
*Актуальная привязка к коду: [../PROJECT_STATUS.md](../PROJECT_STATUS.md) · индекс шагов: [README.md](README.md).*
|