631a927787
Edit README.md
2026-09-18 11:25:16 +03:00
025c937f21
docs: add UML and architecture documentation (Mermaid)
...
- docs/README.md — index and short system overview
- 01-architecture.md — context, per-service components, Gradle modules,
authentication/authorization, web interceptors (flowcharts)
- 02-deployment.md — deployment diagram, containers/env/volumes, build stages,
nginx, update sequence
- 03-domain-model.md — class diagrams for identity/academic/progress and web,
ER model of all schemas (cross-schema references noted)
- 04-sequences.md — 10 sequence diagrams (login, JWT check, forced password
change, lab import, distribution, submission, defense, grades+publication,
content publishing, group page aggregation)
- 05-states.md — state diagrams for defense session, grade publication, lab
status, content visibility, submission lifecycle, variant assignment, password
MS
git log --oneline -3
2026-09-16 18:44:14 +03:00
d04207302a
Phase 7: deployment, data import, UI hardening and security fixes
...
Docker/prod deployment:
- multi-stage Dockerfile (JDK21 build, JRE21 run), docker-compose.prod.yml,
nginx config for lms.our-place.ru, deploy.sh; DEPLOY/IMPORT guides (UI flow)
- Fix Docker 401: LMS_JWT_JWK_SET_URI for academic/progress; forward-headers
Variant distribution (lab page only):
- round-robin by student level, shared random queue across selected groups,
least-used variants, manual pins always preserved; occupied/dup labels
- setup page: single form + one «Сохранить всё», batch level/variant for
selected students (checkboxes)
Grades, defense, materials:
- publication gate + comment lists; defense CSV import (2/3 cols, quotes)
- additional task after defense ("начать заново"); enroll/unenroll students
from group page; temporary-password lock (no navigation until changed) and
persistent "Смена пароля"; forced change once
- chapter page /learn/{c}; header: LMS home, Войти, user -> dashboard,
compact theme toggle; responsive mobile header
- markdown: single newlines are soft breaks; highlight.js with light/dark themes
- lab/content imports ZIP-only (lab.yaml+README+variants/assets,
chapters tree+assets); duplicate lab numbers rejected; variant ordering
and date defaults honored
Fixes:
- 500 on student create (@MapsId set before persist); broken dialogs/JS refs in group page
2026-09-15 00:09:28 +03:00
08830c67f1
Phase 6: accordion in /learn; README feature notes; tests green
...
- collapse chapters/sections via styled <details> with chevrons
- identity testcontainers smoke passes on JDK 21
- README: student UX, comments, JDK note (logback ThrowableProxy in
fat-jars → restart recovery), data dirs
2026-09-12 02:00:45 +03:00
eec804a0ac
Fix .gitignore newline concatenation, untrack logs/ dir, README typo
2026-09-11 22:11:44 +03:00
b532d2ede2
Pin runtime to JDK 21 via run.sh; document full feature set
...
- run.sh: start/stop/restart/status/logs for the whole stack, JAVA_BIN
override, pinned to /usr/lib/jvm/java-21-openjdk (Java 25 breaks
logback ThrowableProxy inside fat jars and kills Tomcat threads)
- -Xmx320m per service, health-gated startup, logs/ dir (gitignored)
- README: requirements, run.sh workflow, full current feature list
- verified: 25-round load test across all pages under JDK 21 — 0 failures
2026-09-11 22:08:50 +03:00
9b7748571e
Initial commit: LMS microservices scaffold
...
- Gradle multi-module: libs/{common-http,security-jwt,markdown,test-support},
services/{identity,academic,progress,gateway}, web (Thymeleaf+htmx)
- identity-service: JWT auth (RSA), accounts, students, groups, enrollment,
import from XLSX/CSV, credentials export, password reset
- academic-service: lab import from JSON/zip (markdown + YAML + variants),
levels, API
- progress-service: schema for student levels and variant assignments
- gateway: Spring Cloud Gateway, JWT validation, route propagation
- web: Server-side UI with flex/footer layout, light/dark theme toggle,
admin dashboard, groups CRUD, student portal placeholder
- docker-compose: PostgreSQL 18
- Tests: identity smoke test with Testcontainers
2026-09-10 19:46:13 +03:00