Документация LMS
UML- и архитектурные диаграммы проекта. Все диаграммы — в формате Mermaid, поэтому они рендерятся прямо в Gitea/GitHub, в VS Code (расширение Markdown Preview Mermaid Support) и в IntelliJ IDEA (плагин Mermaid).
Содержание
| Документ | Что описывает |
|---|---|
| 01-architecture.md | Контекст системы, компоненты, модули Gradle, схема аутентификации |
| 02-deployment.md | Диаграмма развёртывания: Docker, nginx, тома, порты, переменные окружения |
| 03-domain-model.md | Диаграммы классов по сервисам, ER-модель БД, модель web-слоя |
| 04-sequences.md | Диаграммы последовательностей: вход, импорт ЛР, раздача вариантов, сдача, защита, оценки, материалы |
| 05-states.md | Диаграммы состояний: защита, публикация оценок, статус ЛР, публикация материалов |
| 06-authoring.md | Работа с учебными материалами: структура, markdown-редактор, импорт zip |
| 07-groups-courses.md | ТЗ: группы/потоки, курсы и преподаватели, повышение курса, академический отпуск, интеграция с «Контингент» |
| 08-groups-courses-plan.md | План реализации ТЗ 07: решения, этапы 0–6, профиль студента курса, агенты и skills |
| 09-teacher-student-profile.md | Контракт API профиля студента курса для преподавателя |
| 10-stage0-report.md | Отчёт этапа 0: миграции, preflight и проверка на копии БД |
| 11-stage1-report.md | Отчёт этапа 1: роли, группы-когорты, статусы, история, импорт v2 |
| 12-stage2-report.md | Отчёт этапа 2: курсы, bootstrap курса C, привязка и копирование лабораторных, миграция V10 |
| 13-stage3-report.md | Отчёт этапа 3: преподаватели, доступ к курсам, внутренние API, кабинет и профиль студента курса |
| 14-stage4-report.md | Отчёт этапа 4: повышение, академотпуск, отчисление, архив, восстановление и удаление |
| 15-stage5-course-materials.md | Отчёт этапа 5: курсовые материалы, публичные ALL-главы, видимость активов и secure-by-default legacy-файлы |
| 16-stage6-report.md | Отчёт этапа 6: права преподавателя на запись, аудит, CI, upgrade-тест миграций, security-матрица, чек-лист деплоя и остаточные ограничения |
| 17-handoff.md | Handoff: что уже внесено, что осталось, как восстановить контекст и прогнать проверки |
| evidence/README.md | LDD: реестр утверждений, evidence gate, runtime- и migration-проверки |
| evidence/baseline-2026-10-27.md | LDD-baseline: 46 claims, 319 тестов, upgrade, runtime/scale, mutation и browser E2E |
| ADR 0001 | Ключевые архитектурные решения: курс C, миграции, доступ, статусы, повышение |
Кратко о системе
LMS — микросервисное приложение на Kotlin/Spring Boot 3 (Java 21) с server-side-rendered UI: Thymeleaf + Bootstrap 5 (CSS и иконки вендорены локально) и собственный JS (htmx не используется):
- gateway (
:8080) — единая точка входа для REST API: маршрутизация и проверка JWT; - identity-service (
:8081) — аккаунты, группы, студенты, аутентификация (JWT + JWKS); - academic-service (
:8082) — семестры, лабораторные (уровни, варианты), учебные материалы; - progress-service (
:8083) — варианты/уровни студентов, сдачи, оценки и комментарии, защиты; - web (
:8090) — BFF: сессии, CSRF, страницы админа и студента, markdown-рендер, Static (Bootstrap/Icons); - PostgreSQL 18 — одна БД
lmsсо схемамиidentity,academic,progress.
Поток запроса: браузер → nginx → web → gateway → сервис → PostgreSQL. Подробности — в 01-architecture.md.