> ## 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.

# Пользовательские сценарии

> End-to-end гайды: запуск первой школы, создание и продажа курса, приём оплаты, проверка практики и выдача сертификата

Этот раздел собирает разрозненные возможности платформы в сквозные сценарии — от пустого аккаунта до
работающей онлайн-школы с продажами. Каждый гайд ведёт через несколько разделов интерфейса; по ходу
даны ссылки на подробные статьи, где та или иная настройка описана детально.

<Note>
  Сценарии рассчитаны на коммерческую школу (сегмент `Commerce`). В корпоративном сегменте (`Corporate`)
  разделы продаж, цен и эквайринга скрыты — обучение идёт без оплат. См.
  [Тип школы (сегмент)](/online-schools/school-creation/school-type).
</Note>

## Сценарий 1. Запуск первой школы

Цель — создать школу и довести её до состояния, когда можно наполнять курсы и приглашать учеников.

<Steps>
  <Step title="Создайте школу">
    На форме создания (`pages.School.Create`) укажите **название** (3–50 символов) и **базовый домен**
    (3–20 символов). Итоговый адрес — `ваш-домен.exode.biz`. После нажатия «Создать школу» платформа
    создаёт школу вместе с продавцом (seller) и перенаправляет вас на домен новой школы в раздел настроек.
    Подробнее — [Регистрация школы](/online-schools/school-creation/registration).
  </Step>

  <Step title="Заполните основную информацию">
    В разделе «Основная информация» уточните название и добавьте краткое описание/слоган (до 100 символов).
    Настройки основной информации сохраняются автоматически (auto-save).
  </Step>

  <Step title="Загрузите логотип и иконку">
    Логотип и иконка формируют узнаваемость школы в интерфейсе и во вкладке браузера. См.
    [Логотип и иконка](/online-schools/school-setup/logo-and-icon).
  </Step>

  <Step title="Настройте домен, языки и оформление">
    При необходимости подключите собственный домен (возможность `customDomain`), выберите доступные языки
    интерфейса и цветовую схему. См. [Домен школы](/online-schools/school-creation/domain) и
    [Темы](/online-schools/school-setup/themes).
  </Step>

  <Step title="Соберите команду (необязательно)">
    В разделе «Мои менеджеры» (`/manage/school/managers`) добавьте сотрудников и выдайте им права.
    См. [Роли пользователей](/online-schools/roles-permissions/user-roles).
  </Step>
</Steps>

<Tip>
  Набор доступных возможностей задаётся тарифом школы (`SchoolFeatures`). Если какого-то раздела нет в меню —
  проверьте тариф на странице [Подписка и тарифы](/online-schools/getting-started/subscription-plans).
</Tip>

<img src="https://mintlify.s3.us-west-1.amazonaws.com/exode-faq/images/online-schools/scenarios-help/school-created.png" alt="Экран приветствия после создания школы" />

## Сценарий 2. Создание и продажа курса

Цель — создать курс, наполнить его контентом, назначить цену и опубликовать в каталоге.

<Steps>
  <Step title="Создайте курс">
    В модальном окне создания выберите [тип курса](/online-schools/courses/course-types) (видеокурс,
    текстовый, вебинар, аттестация, индивидуальное занятие или пакет), введите название (до 130 символов)
    и выберите тип доступа — платный или бесплатный. Тип курса нельзя изменить позже.
  </Step>

  <Step title="Наполните структуру">
    В разделе **Содержание** (`/manage/course/:courseId/content`) соберите дерево из **модулей** и
    **уроков**. Добавьте контент-блоки (теорию) и, при необходимости, практику. См.
    [Создание уроков и модулей](/online-schools/lessons-modules/creating).
  </Step>

  <Step title="Опубликуйте уроки">
    Переведите готовые уроки из статуса «Черновик» (`Draft`) в «Опубликован» (`Published`) — в черновике
    урок не виден ученикам. Демо-уроки (`Demo`) доступны без покупки.
  </Step>

  <Step title="Создайте запуск и тариф">
    В разделе **Запуски** создайте **запуск** (поток) с датами продаж и хотя бы один активный **тариф**
    (`ProductPrice`). Выберите тип оплаты: разовая (`OneTime`), рассрочка (`Installment`), подписка
    (`Subscription`) или внешняя ссылка (`ExternalLink`). См.
    [Запуск и тарифы](/online-schools/courses/launches-and-pricing).
  </Step>

  <Step title="Отправьте на публикацию">
    В разделе **Публикация** платформа проверит условия запуска: статус `Published` у продукта и запуска,
    корректные даты продаж, наличие активного тарифа (`hasActualPrice`) и что курс не в архиве. Отправьте
    запуск на модерацию — после одобрения курс появляется в каталоге. См.
    [Создание курсов](/online-schools/courses/creating-courses).
  </Step>
</Steps>

<Warning>
  Без хотя бы одного активного тарифа запуск нельзя опубликовать — платформа покажет ошибку «Нет активных
  тарифов» на экране публикации.
</Warning>

<img src="https://mintlify.s3.us-west-1.amazonaws.com/exode-faq/images/online-schools/scenarios-help/course-publish.png" alt="Экран публикации курса с проверкой условий запуска" />

## Сценарий 3. Приём оплаты и выдача доступа

Цель — настроить приём денег и понять, как ученик получает доступ после оплаты.

<Steps>
  <Step title="Подключите эквайринг">
    В разделе **Управление → Школа → Эквайринг** (`/manage/school/acquiring`) добавьте платёжного
    провайдера (Payme, Click, Uzum, Тинькофф и др.), заполните реквизиты из кабинета провайдера и включите
    подключение (`active`). Пока не подключён ни один эквайринг, кнопка оплаты у ученика не появляется. См.
    [Настройка кассы](/online-schools/sales-payments/checkout-setup).
  </Step>

  <Step title="Пропишите callback-ссылку">
    Если провайдер требует, скопируйте callback-ссылку из формы эквайринга и вставьте её в личный кабинет
    провайдера — иначе платежи могут не подтверждаться автоматически.
  </Step>

  <Step title="Ученик оплачивает">
    Оплата идёт через **счёт** (Invoice), созданный из корзины. Ученик открывает прямую ссылку
    `/pay/:productId/:priceId` или корзину `/cart`, применяет промокод и оплачивает. Страница
    `/pay/invoice/:invoiceUuid` показывает статус и опрашивает его до завершения. См.
    [Приём платежей](/online-schools/sales-payments/accepting-payments).
  </Step>

  <Step title="Доступ выдаётся автоматически">
    После успешного платежа (`PaymentStatus.Completed`) платформа выдаёт доступ к продукту. Если у тарифа
    указана группа после оплаты (`groupId`), ученик попадает в неё; срок доступа определяется полем
    `accessDays` тарифа.
  </Step>

  <Step title="Контролируйте продажи">
    Все счета видны в **Управление → Счета** (`/manage/invoices`) с фильтрами по ученику, продукту,
    эквайрингу, статусу, UTM-меткам и датам. Рассрочки — в **Управление → Рассрочки**
    (`/manage/installments`).
  </Step>
</Steps>

<Note>
  Для рассрочки и подписки ученик привязывает карту, а очередные платежи списываются автоматически по
  графику. См. [Рассрочка и автосписания](/online-schools/sales-payments/installments).
</Note>

<img src="https://mintlify.s3.us-west-1.amazonaws.com/exode-faq/images/online-schools/scenarios-help/invoices.png" alt="Таблица счетов школы с фильтрами" />

## Сценарий 4. Проверка практики

Цель — проверить работу, сданную учеником, и вернуть обратную связь.

<Steps>
  <Step title="Дождитесь сдачи работы">
    Когда ученик сдаёт практику, создаётся **попытка** (`CourseLessonPracticeAttemptEntity`). Задания с
    закрытым ответом проверяются автоматически (статус `AutoVerified`), задания с развёрнутым ответом
    (`Detailed`, `*WithAttachment`) уходят на ручную проверку (`OnReview`).
  </Step>

  <Step title="Откройте список работ">
    Работы на проверку собраны в разделах **Практика** (`/manage/practice/chat`) и **Домашние работы**
    (`/manage/homeworks/:page`). Отфильтруйте по студенту, курсу, уроку, статусу или дате.
  </Step>

  <Step title="Проверьте в диалоге">
    Откройте работу в **диалоге проверки** (PracticeChat): вы видите ответы ученика и переписку. Обратная
    связь передаётся сообщениями в привязанном к попытке чате.
  </Step>

  <Step title="Выставьте результат">
    Зачёт определяется порогом сдачи (`passThreshold`). Возможные исходы: «Выполнено» (`Verified`),
    «Доработка» (`OnCorrection`) — ученик исправляет и сдаёт заново, или «Незачёт» (`Failed`). При наборе
    порога открывается следующий урок. См.
    [Проверка практики](/online-schools/lessons-modules/checking-practice).
  </Step>
</Steps>

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

<img src="https://mintlify.s3.us-west-1.amazonaws.com/exode-faq/images/online-schools/scenarios-help/practice-review.png" alt="Диалог проверки практики с ответами ученика" />

## Сценарий 5. Выдача сертификата

Цель — настроить автоматическую выдачу сертификата за прохождение курса.

<Note>
  Раздел сертификатов находится в активной разработке (задача ITD-158). Форма настройки и раздел «Мои
  сертификаты» уже присутствуют в интерфейсе, но пока используют временные заглушки и не подключены к боевому
  backend. Ниже описана целевая механика. Честный статус — на странице
  [Статусы функций](/online-schools/scenarios-help/feature-status).
</Note>

<Steps>
  <Step title="Включите выдачу на уровне курса">
    Откройте управление курсом → раздел **Сертификаты** (`ManageCourseCertificatesPage`) и активируйте
    переключатель «Выдавать по завершении курса» (`enabled`).
  </Step>

  <Step title="Выберите шаблон и оформление">
    Выберите один из системных шаблонов (`templateId`), при необходимости задайте фирменный цвет
    (`brandColor`, HEX), срок действия в месяцах (`expireInMonths`; пусто = бессрочно) и загрузите
    изображения подписи и печати (`signatureImageUrl`, `stampImageUrl`). См.
    [Создание сертификата](/online-schools/gamification/creating-certificates).
  </Step>

  <Step title="Сохраните настройки">
    Настройки применятся ко всем будущим выдачам данного курса.
  </Step>

  <Step title="Ученик завершает курс — сертификат выдаётся сам">
    Единственное условие выдачи — полное завершение курса (событие `CourseCompleted`). Выдача идемпотентна:
    один ученик получает один сертификат на курс. Данные «замораживаются» в снимке (snapshot) на момент
    выдачи.
  </Step>

  <Step title="Ученик видит сертификат">
    Полученные сертификаты доступны в разделе «Мои сертификаты» (`/certificates`). Каждый открывается на
    публичной странице проверки `verify.exode.biz/certificate/<uuid>`, где его можно показать по ссылке,
    проверить по QR-коду и сохранить в PDF через печать. См.
    [Отображение сертификата](/online-schools/gamification/certificate-display).
  </Step>
</Steps>

<img src="https://mintlify.s3.us-west-1.amazonaws.com/exode-faq/images/online-schools/scenarios-help/certificate-settings.png" alt="Раздел настройки сертификата в управлении курсом" />
