- 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
32 lines
874 B
Plaintext
32 lines
874 B
Plaintext
// Entry point of the Gradle build: declares repositories and subprojects.
|
|
// Docs: https://docs.gradle.org/current/userguide/multi_project_builds.html
|
|
|
|
dependencyResolutionManagement {
|
|
@Suppress("UnstableApiUsage")
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
}
|
|
|
|
plugins {
|
|
// Automatically provision the JDK declared by toolchains.
|
|
id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0"
|
|
}
|
|
|
|
rootProject.name = "LMS"
|
|
|
|
// Shared libraries (no Spring Boot application, plain JVM/Spring libraries).
|
|
include(":libs:common-http")
|
|
include(":libs:security-jwt")
|
|
include(":libs:markdown")
|
|
include(":libs:test-support")
|
|
|
|
// Domain microservices.
|
|
include(":services:identity-service")
|
|
include(":services:academic-service")
|
|
include(":services:progress-service")
|
|
include(":services:gateway")
|
|
|
|
// Server-side web UI (BFF): Thymeleaf + htmx.
|
|
include(":web")
|