> ## Documentation Index
> Fetch the complete documentation index at: https://faq.exode.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Проверка практики

> Автоматическая и ручная проверка работ, статусы попыток, диалог проверки и обратная связь

Когда студент сдаёт практику, создаётся **попытка** (`CourseLessonPracticeAttemptEntity`) со своим
статусом. Часть заданий проверяется автоматически, часть — вручную куратором через диалог проверки.

## Автоматическая и ручная проверка

* **Автоматическая.** Задания с закрытым ответом (выбор, сопоставление, порядок, пропуски, короткий
  ответ) платформа сверяет с эталоном сразу. Если вся практика состоит из таких заданий, попытка
  получает статус **«Выполнено (авто)»** (`AutoVerified`) без участия куратора.
* **Ручная.** Задания с развёрнутым ответом и вложениями (`Detailed`, `*WithAttachment`) требуют
  проверки человеком. Такая попытка уходит на проверку и ждёт куратора со статусом **«На проверке»**
  (`OnReview`).

Соответствие типов заданий способу проверки — в разделе
[Типы заданий](/online-schools/lessons-modules/task-types).

## Статусы попыток

Статус попытки описывается перечислением `CourseLessonPracticeAttemptStatus`:

| Статус (`CourseLessonPracticeAttemptStatus`) | Название          | Что означает                                     |
| -------------------------------------------- | ----------------- | ------------------------------------------------ |
| `Created`                                    | Ожидание отправки | Попытка начата, но ещё не отправлена на проверку |
| `OnReview`                                   | На проверке       | Отправлена куратору и ждёт ручной проверки       |
| `AutoVerified`                               | Выполнено (авто)  | Полностью проверена автоматически                |
| `Verified`                                   | Выполнено         | Проверена и зачтена куратором                    |
| `OnCorrection`                               | Доработка         | Возвращена студенту на доработку                 |
| `Failed`                                     | Незачёт           | Не сдана (не пройден порог / отклонена)          |
| `Stacked`                                    | Попытки исчерпаны | Исчерпан лимит попыток (`maxAttempts`)           |

## Список работ на проверку

Все сданные работы школы собираются в двух связанных интерфейсах:

| Интерфейс                       | Адрес                     | Формат                      |
| ------------------------------- | ------------------------- | --------------------------- |
| **Практика (диалоги проверки)** | `/manage/practice/chat`   | Список работ + чат проверки |
| **Домашние работы**             | `/manage/homeworks/:page` | Таблица работ с фильтрами   |

Оба используют один источник — `courseLessonPracticeAttemptFindMany` — и общий стор фильтров.
Работы можно фильтровать по студенту, курсу, уроку, куратору, статусу (`statuses`) и диапазону дат
отправки на проверку (`sentToReviewAtDateRange`), и сортировать по дате отправки.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/exode-faq/images/online-schools/lessons-modules/practice-review-list.png" alt="Список работ на проверку с группировкой по датам" />

## Диалог проверки (PracticeChat)

Ручная проверка ведётся в **диалоге проверки** — это переиспользованный интерфейс чата
(`ChatDialogsPage`), где к каждой попытке привязано сообщение и чат со студентом. Куратор открывает
работу из списка, видит ответы студента и переписку, и здесь же выставляет результат и оставляет
обратную связь.

Каждая работа в списке показывает:

* аватар и имя студента;
* курс и урок, к которым относится практика;
* текущий статус попытки (цветной значок статуса);
* аватар куратора, назначенного на проверку (если есть).

<Note>
  Диалог проверки построен на механике чатов платформы: обратная связь куратора и обсуждение работы
  со студентом ведутся сообщениями в привязанном к попытке чате. Отдельного «поля рецензии» вне чата нет —
  комментарии и правки передаются через переписку.
</Note>

## Оценки и результат

Баллы за практику складываются из баллов заданий: у каждого задания есть максимальный балл
(`maxPoint`), а зачёт практики определяется порогом сдачи `passThreshold` (процент верных ответов).
Итог попытки отражается её статусом:

* набран порог → **«Выполнено»** / **«Выполнено (авто)»**, следующий урок открывается;
* порог не набран или работа отклонена → **«Незачёт»**;
* нужна доработка → **«Доработка»**, студент исправляет и отправляет заново (в пределах `maxAttempts`).

При включённой геймификации за баллы заданий начисляются звёзды по коэффициенту `starsPerTaskPoint`.

<Warning>
  После исчерпания лимита попыток (`maxAttempts`) работа переходит в статус **«Попытки исчерпаны»**
  (`Stacked`) и повторная сдача становится недоступна. Настраивайте лимит попыток осознанно.
</Warning>
