- academic: POST /api/v1/content/reorder applies a full tree arrangement in one request — chapter order, section order and section->chapter moves, article order and article->section moves (positions and parent ids updated) - web: POST /admin/content/reorder accepts the tree from JS (CSRF via query param), calls the gateway with the admin token - /learn admin view: draggable handles (⠿) for chapters, sections and articles; drop before/after to reorder, drop into a chapter/section to move; visual indicators; structure is collected from DOM and saved, then page reloads - docs: class diagram method + new sequence diagram for drag & drop
Документация 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 | Диаграммы состояний: защита, публикация оценок, статус ЛР, публикация материалов |
Кратко о системе
LMS — микросервисное приложение на Kotlin/Spring Boot 3 (Java 21) с server-side-rendered UI на Thymeleaf + htmx:
- gateway (
:8080) — единая точка входа для REST API: маршрутизация и проверка JWT; - identity-service (
:8081) — аккаунты, группы, студенты, аутентификация (JWT + JWKS); - academic-service (
:8082) — семестры, лабораторные (уровни, варианты), учебные материалы; - progress-service (
:8083) — варианты/уровни студентов, сдачи, оценки и комментарии, защиты; - web (
:8090) — BFF: сессии, CSRF, страницы админа и студента, markdown-рендер; - PostgreSQL 18 — одна БД
lmsсо схемамиidentity,academic,progress.
Поток запроса: браузер → nginx → web → gateway → сервис → PostgreSQL. Подробности — в 01-architecture.md.