Files
LMS/docs
Vladislav Kopnin 9412d87fed fix: закрыть P0/P1 расхождения с целевой моделью
- академический отпуск: readOnly, запрет submit/start/finish защиты
- черновики лабораторных скрыты от студентов в списке/деталях/по UUID
- удалено действие «Убрать из группы» из UI и API
- импорт: restoreInactiveStatuses, skipped-отчёт, разблокировка архивного аккаунта
- глобальные материалы STUDENTS/TEACHERS с JWT-фильтрацией и сменой аудитории
- LDD-AUTH-005 переведён на unit-evidence, clean check проходит по P0
- backup: безопасный парсинг .env, verify-latest, кавычки cron
- robots/noindex, комментарии без автора, профиль без черновиков
- docs/18-goal-audit.md; baseline 57 claims / 366 тестов / release PASS
2026-10-29 18:58:21 +03:00
..

Документация 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: что уже внесено, что осталось, как восстановить контекст и прогнать проверки
18-goal-audit.md Сверка целевой модели из docs/07–09 с фактическим кодом: статусы, остаточные отличия, решения
evidence/README.md LDD: реестр утверждений, evidence gate, runtime- и migration-проверки
evidence/baseline-2026-10-27.md LDD-baseline: 57 claims, 366 тестов, 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.