# Документация LMS UML- и архитектурные диаграммы проекта. Все диаграммы — в формате **Mermaid**, поэтому они рендерятся прямо в Gitea/GitHub, в VS Code (расширение Markdown Preview Mermaid Support) и в IntelliJ IDEA (плагин Mermaid). ## Содержание | Документ | Что описывает | |---|---| | [01-architecture.md](01-architecture.md) | Контекст системы, компоненты, модули Gradle, схема аутентификации | | [02-deployment.md](02-deployment.md) | Диаграмма развёртывания: Docker, nginx, тома, порты, переменные окружения | | [03-domain-model.md](03-domain-model.md) | Диаграммы классов по сервисам, ER-модель БД, модель web-слоя | | [04-sequences.md](04-sequences.md) | Диаграммы последовательностей: вход, импорт ЛР, раздача вариантов, сдача, защита, оценки, материалы | | [05-states.md](05-states.md) | Диаграммы состояний: защита, публикация оценок, статус ЛР, публикация материалов | | [06-authoring.md](06-authoring.md) | Работа с учебными материалами: структура, markdown-редактор, импорт zip | | [07-groups-courses.md](07-groups-courses.md) | ТЗ: группы/потоки, курсы и преподаватели, повышение курса, академический отпуск, интеграция с «Контингент» | | [08-groups-courses-plan.md](08-groups-courses-plan.md) | План реализации ТЗ 07: решения, этапы 0–6, профиль студента курса, агенты и skills | | [09-teacher-student-profile.md](09-teacher-student-profile.md) | Контракт API профиля студента курса для преподавателя | | [10-stage0-report.md](10-stage0-report.md) | Отчёт этапа 0: миграции, preflight и проверка на копии БД | | [11-stage1-report.md](11-stage1-report.md) | Отчёт этапа 1: роли, группы-когорты, статусы, история, импорт v2 | | [ADR 0001](adr/0001-groups-courses-foundation.md) | Ключевые архитектурные решения: курс 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](01-architecture.md).