You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A catalogue of the tools, languages, frameworks, and libraries used in learn-dev,
with versions and a one-line reason for each. This file answers "what do we
use?" For "how do the pieces fit together?" see ARCHITECTURE.md;
for "why this over the alternative?" see the ADRs; for term
definitions see GLOSSARY.md.
Versions come from pom.xml, .sdkmanrc, and docker-compose.yaml. Update this
file when those change.
Language and runtime
Technology
Version
Why here
Java
21 (21.0.8-tem)
LTS runtime; project language. Pinned via .sdkmanrc.
Application framework
Technology
Version
Why here
Spring Boot
3.5.14
Application framework and dependency management (parent POM).
Spring Web (MVC)
via Boot
Server-side MVC controllers and view rendering.
Spring Security
via Boot
Authentication and authorization (session form login).
Spring Data JPA
via Boot
Repository abstraction over the relational store.
Spring Boot Actuator
via Boot
Operational endpoints (health, info).
Bean Validation (Hibernate Validator)
via Boot
Declarative form/DTO constraints enforced with @Valid.
View layer
Technology
Version
Why here
Thymeleaf
via Boot
Server-side HTML template engine.
thymeleaf-extras-springsecurity6
via Boot
sec: dialect to read the authenticated user in templates.
HTML / CSS / JavaScript
—
Front-end markup, styling, and behaviour.
Persistence and data
Technology
Version
Why here
Hibernate ORM
via Boot (JPA)
Maps Java entities to relational tables.
PostgreSQL
17
Relational core (users, roles, courses). See ADR-0007.
PostgreSQL JDBC driver
via Boot
Database connectivity.
Liquibase
via Boot
Schema migrations, applied at startup. See ADR-0005.
MongoDB
8
Provisioned (Docker) and configured (URI) for future content storage; not yet wired to a feature (Mongo auto-config is excluded in tests).
Configuration and secrets
Technology
Version
Why here
spring-dotenv (springboot3-dotenv)
BOM-managed
Loads ./.env at startup from the working directory.
1Password Environments
—
Provisions .env (a FIFO) and the gh token; never edited by hand.
Build and dependency management
Technology
Version
Why here
Maven
3.9.16
Build and dependency management. Pinned via .sdkmanrc.
Maven Wrapper (./mvnw)
—
Reproducible Maven invocation without a global install.
spring-boot-maven-plugin
via Boot
Runs the app (spring-boot:run) and builds the executable jar.