docs: этап 2 — курсы, bootstrap и лабораторные

This commit is contained in:
2026-10-27 15:37:56 +03:00
parent 9a539407f1
commit 6f8add3736
7 changed files with 215 additions and 23 deletions

View File

@@ -1,7 +1,7 @@
# Порядок наполнения LMS данными (через интерфейс)
Всё делается в админке, порядок: администратор → группы и студенты → лабораторная →
раздача вариантов → защита → материалы.
Всё делается в админке, порядок: администратор → курс (bootstrap) → группы
и студенты → лабораторная → раздача вариантов → защита → материалы.
## Шаг 1. Деплой
@@ -9,7 +9,25 @@
откройте домен — попадёте на `/setup`, создайте администратора (логин и пароль
храните в секрете, в репозиторий их не писать).
## Шаг 2. Группы и студенты
## Шаг 2. Курс
Откройте **Курсы** (`/admin/courses`). Все лабораторные принадлежат курсу,
поэтому курс должен существовать до импорта лабораторных.
* **Существующая база:** если курсов ещё нет, нажмите «Создать курс и перенести
данные». Bootstrap создаст курс «Промышленное программирование на языке C»,
привяжет к нему все активные группы и перенесёт существующие лабораторные
и главы. Повторный запуск безопасен и не создаёт дублей.
* **Новая база:** создайте курс кнопкой «+ Новый курс» (номер присвоится
автоматически) либо тем же bootstrap.
* После импорта групп (шаг 3) привяжите их к курсу на странице курса, если их
не было в момент bootstrap: блок «Привязать группу». Там же назначаются
преподаватели — по UUID аккаунта со страницы «Пользователи».
Архивированный курс нельзя выбрать для новой лабораторной или копирования.
Без курса создание и импорт лабораторной недоступны: в форме нужно выбрать курс.
## Шаг 3. Группы и студенты
**Группы → Импорт** — загрузите `.xls`/`.xlsx`/`.csv` со списком группы.
Обязательные столбцы:
@@ -35,9 +53,10 @@
Выгрузить логины: **«Логины XLSX» / «CSV»**.
## Шаг 3. Лабораторная
## Шаг 4. Лабораторная
**Лабораторные → Импорт** — ZIP со структурой:
**Лабораторные → Импорт** — сначала выберите **курс** (обязательно), затем
загрузите ZIP со структурой:
```text
lab.yaml # номер, название, points_max, уровни (code/title), сроки, статус
@@ -49,9 +68,12 @@ variants/01.md # вариант: front-matter (level, number, title) + тек
странице лабораторной:
* «Настроить» — срок сдачи, дата защиты, максимум баллов, статус;
* уровни/варианты можно править и добавлять прямо там же.
* уровни/варианты можно править и добавлять прямо там же;
* «Копировать в курс» — создать копию лабораторной (с уровнями и вариантами)
в другом курсе; номер и название можно изменить. Прогресс студентов не
копируется, копия создаётся черновиком.
## Шаг 4. Раздача вариантов
## Шаг 5. Раздача вариантов
На странице лабораторной — **«Распределить»**: выбрать группы, при необходимости
«пересоздать заново». Логика: случайная очередь по всем вариантам выбранного
@@ -59,7 +81,7 @@ variants/01.md # вариант: front-matter (level, number, title) + тек
вручную не трогаются. Частично/точно — в списке назначений (уровень и вариант по
каждому студенту) или массово чекбоксами.
## Шаг 5. Оценки и защита
## Шаг 6. Оценки и защита
На странице группы (матрица):
@@ -69,7 +91,7 @@ variants/01.md # вариант: front-matter (level, number, title) + тек
(`студент;ЛР;задание` или `студент;задание` при выбранной ЛР), «выдать код»,
«изменить», «текст», после готовности — «доп. задание: начать заново».
## Шаг 6. Учебные материалы
## Шаг 7. Учебные материалы
**Лабораторные → материалы (`/learn`)** доступны гостям. Для наполнения:
создание глав/разделов/статей в админке или **импорт ZIP** со структурой: