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

# Создание групп и добавление учеников

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

Группы — это учебные потоки внутри курса. Каждая группа привязана к конкретному курсу (продукту), объединяет учеников и кураторов, имеет собственный чат/канал, а также индивидуальные правила доступа к урокам и расписание открытия материалов.

<Note>
  Группы всегда создаются в контексте курса. Раздел «Группы» открывается из карточки курса, поэтому у группы уже есть привязка к курсу и его продукту — отдельно выбирать курс при создании не нужно.
</Note>

## Где находятся группы

Список групп курса доступен по адресу:

```
/manage/course/:courseId/groups/:page
```

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

<img src="https://mintlify.s3.us-west-1.amazonaws.com/exode-faq/images/online-schools/groups/groups-list.png" alt="Список групп курса с карточками и кнопкой создания" />

<Note>
  Кнопка создания группы и добавления учеников доступна только на платформе онлайн-школы (`Platform.School`). В других режимах платформы эти действия скрыты.
</Note>

## Создание группы

Создание группы выполняется в модальном окне `manage-group-create`, которое открывается кнопкой «Создать группу» в шапке списка. В форму передаётся `productId` текущего курса, поэтому новая группа сразу связывается с курсом.

<Steps>
  <Step title="Откройте список групп курса">
    Перейдите в управление курсом и откройте раздел «Группы». Нажмите кнопку **«Создать группу»** в правом верхнем углу.
  </Step>

  <Step title="Введите название группы">
    Укажите название в поле «Название группы». Ограничение — **100 символов**. Пока название не заполнено, кнопка создания остаётся неактивной.
  </Step>

  <Step title="Добавьте учеников (необязательно)">
    В том же окне можно сразу выбрать учеников через поиск по пользователям школы. За один раз можно выбрать до **250 человек**. Этот шаг можно пропустить и добавить учеников позже.
  </Step>

  <Step title="Создайте группу">
    Нажмите **«Создать группу»**. После создания вы автоматически переходите на страницу настроек новой группы, где можно назначить кураторов и правила доступа.
  </Step>
</Steps>

<img src="https://mintlify.s3.us-west-1.amazonaws.com/exode-faq/images/online-schools/groups/group-create-form.png" alt="Форма создания группы: название и выбор учеников" />

<Tip>
  Форма создания поддерживает черновики: если вы случайно закрыли окно, введённые данные (название и выбранные ученики) можно восстановить при повторном открытии.
</Tip>

## Добавление учеников в группу

Управление составом группы вынесено на отдельную страницу «Ученики»:

```
/manage/course/:courseId/groups/:page/:groupId/students
```

Здесь отображается таблица участников группы с фильтрами и экспортом. Добавить учеников можно кнопкой **«Добавить ученика»**, которая открывает модальное окно `manage-group-invite-members`.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/exode-faq/images/online-schools/groups/group-students.png" alt="Страница учеников группы с таблицей и кнопкой добавления" />

### Как добавляются участники

Механизм добавления одинаков и при создании группы, и на странице учеников: вы выбираете пользователей школы через поиск, а затем система массово добавляет их в группу.

| Параметр                    | Значение                                                       |
| --------------------------- | -------------------------------------------------------------- |
| Максимум за одно добавление | 250 пользователей                                              |
| Источник                    | Пользователи школы (поиск по имени)                            |
| Результат операции          | Списки `created` (добавлены) и `exist` (уже состояли в группе) |
| Права                       | Только платформа онлайн-школы                                  |

<Note>
  При массовом добавлении система разделяет пользователей на тех, кто был добавлен впервые, и тех, кто уже состоял в группе, — повторно они не дублируются.
</Note>

### Фильтрация участников

Таблица учеников поддерживает фильтры, помогающие находить нужных участников в больших группах:

| Фильтр                  | Назначение                                |
| ----------------------- | ----------------------------------------- |
| `search`                | Поиск по имени участника                  |
| `participantStatuses`   | Статус участника в продукте               |
| `currentLessonIds`      | Текущий урок, на котором находится ученик |
| `progressPercentRange`  | Диапазон прогресса прохождения курса      |
| `createdAtDateRange`    | Дата добавления в группу                  |
| `inviterUserIds`        | Кто пригласил участника                   |
| `participantCuratorIds` | Закреплённый куратор                      |

Отфильтрованный список можно выгрузить через кнопку экспорта (тип `GroupMemberFindMany`).

## Связь группы с курсом и потоком

Группа не существует отдельно от курса: она привязывается к продукту курса (`productId`). Через продукт группа связана с курсом, его модулями и уроками — это позволяет управлять доступом к материалам именно для участников данной группы.

```graphql theme={null}
query GroupFindOne($groupId: Int!) {
    groupFindOne(groupId: $groupId) {
        id
        name
        product {
            id
            course {
                id
                name
                type
            }
        }
    }
}
```

Благодаря этой связи одну и ту же программу курса можно вести несколькими независимыми потоками: у каждой группы будут свои ученики, кураторы, чат, расписание открытия уроков и сроки доступа.

<Tip>
  После создания группы переходите к разделу настроек, чтобы назначить кураторов, задать расписание открытия уроков и ограничения по доступу. Подробнее — в статье «Настройки группы».
</Tip>
