Définitions des termes métier et techniques utilisés dans le projet learn-dev. Pour les outils concrets et leurs versions, voir docs/tech-stacks.md ; pour l'articulation des composants, voir ARCHITECTURE.md ; pour la justification des décisions de conception, voir les ADR.
Note
🇬🇧 English version: GLOSSARY.md. Les deux fichiers sont la traduction l'un de l'autre : toute entrée ajoutée, modifiée ou supprimée dans l'un doit l'être aussi dans l'autre.
- Archive (archiver) — Dépublier un cours ou une leçon pour qu'il ne soit plus accessible aux étudiants, sans le supprimer.
- Course (cours) — Une unité de contenu pédagogique appartenant à un formateur ; contient des leçons.
- Deactivate (désactiver) — Neutraliser un compte (formateur ou étudiant, par exemple) pour qu'il ne puisse plus être utilisé, sans le supprimer. Voir aussi compte désactivé.
- Drop a course (abandonner un cours) — Le retrait d'un étudiant d'un cours avant de l'avoir terminé.
- Enrollment (inscription) — La relation qui lie un étudiant à un cours qu'il a rejoint.
- Lesson (leçon) — Un élément de contenu individuel au sein d'un cours.
- Role (rôle) — Un ensemble nommé de permissions accordées à un
utilisateur. Les rôles fournis par défaut sont
STUDENT,INSTRUCTORetADMIN;SUPERADMINest prévu (voir l'issue #65).
- Authority (autorité) — Dans Spring Security, une permission unitaire
détenue par un utilisateur authentifié. Les rôles sont représentés comme des
autorités préfixées par
ROLE_(le rôleADMINdevient l'autoritéROLE_ADMIN). - BCrypt — Une fonction de hachage de mots de passe adaptative. Les mots de passe sont stockés sous forme de hachés BCrypt, jamais en clair.
- CSRF (Cross-Site Request Forgery) — Une attaque qui pousse le navigateur
d'un utilisateur connecté à soumettre une requête à son insu. Contrée par un
jeton par formulaire (injecté par Thymeleaf) et l'attribut de cookie
SameSite. - Compte désactivé (disabled account) — Un compte qui existe mais n'est pas
autorisé à s'authentifier (issu du drapeau
is_active = false). À distinguer d'un compte verrouillé. - HttpOnly — Un attribut de cookie qui masque le cookie au JavaScript côté client, ce qui limite le vol de session via XSS.
- IDOR (Insecure Direct Object Reference) — Une faille de contrôle d'accès où un identifiant fourni par le client est utilisé sans vérification d'autorisation. Les clés primaires UUID des utilisateurs limitent l'énumération (voir ADR-0003).
- Compte verrouillé (locked account) — Un compte temporairement empêché de
s'authentifier (par exemple après trop d'échecs de connexion), issu du
drapeau
is_locked. À distinguer d'un compte désactivé. - Principal — L'entité actuellement authentifiée (en général l'utilisateur) dans un contexte de sécurité.
- SameSite — Un attribut de cookie qui contrôle l'envoi du cookie par le
navigateur sur les requêtes inter-sites. Positionné sur
Laxici comme défense en profondeur contre le CSRF. - Secure (cookie) — Un attribut de cookie qui restreint le cookie au HTTPS. Activé seulement lorsque l'application sera servie en TLS.
- Session (côté serveur) — L'état d'authentification conservé sur le
serveur et référencé par un cookie de session (
JSESSIONID), plutôt qu'un jeton autoporteur (voir ADR-0001). - XSS (Cross-Site Scripting) — L'injection de scripts malveillants dans des
pages vues par d'autres utilisateurs. Limitée par l'échappement automatique
de Thymeleaf et par
HttpOnly.
- Changelog / Changeset (Liquibase) — Un changelog est la liste ordonnée
des migrations ; un changeset est une migration atomique, identifiée par
path::id::author. - ERD (Entity-Relationship Diagram) — Un diagramme des entités et de leurs relations (produit ici avec Mermaid).
- Hibernate — L'implémentation JPA (ORM) utilisée pour faire correspondre les entités Java aux tables.
- JPA (Jakarta Persistence API) — L'API Java standard du mapping objet-relationnel ; implémentée par Hibernate.
- JSESSIONID — Le nom par défaut du cookie de session servlet.
- Liquibase — L'outil de migration du schéma de base de données. Les migrations sont des fichiers SQL formatés écrits à la main et appliqués au démarrage (voir ADR-0005).
- Merise — Une méthode française de modélisation des données produisant trois vues : MCD, MLD, MPD.
- MCD (Modèle Conceptuel de Données) — Le modèle conceptuel ; les entités et relations, indépendamment de toute base de données.
- MLD (Modèle Logique des Données) — Le modèle logique ; le schéma relationnel (tables, clés) dérivé du MCD.
- MPD (Modèle Physique des Données) — Le modèle physique ; le schéma concret tel qu'implémenté dans PostgreSQL.
- ORM (Object-Relational Mapping) — La correspondance entre objets Java et tables relationnelles ; assurée par Hibernate/JPA.
- UUID — Un identifiant sur 128 bits utilisé comme clé primaire des utilisateurs pour éviter l'énumération d'identifiants séquentiels.
- ADR (Architecture Decision Record) — Un document court, numéroté et en ajout seul qui capture une décision de conception et ses compromis, au format MADR.
- Bean Validation — Le standard Jakarta de déclaration de contraintes
(
@NotBlank,@Email,@Size) sur les champs de formulaires/DTO, appliquées avec@Valid. - Checkstyle — Un outil d'analyse statique qui vérifie les sources Java
contre un référentiel de style. Exécuté ici avec le référentiel Google
fourni (
google_checks.xml) en mode rapport seul (voir ADR-0011). - Code coverage (couverture de code) — Le pourcentage de code exercé par la suite de tests. Mesuré ici par JaCoCo et publié sur Codecov ; rapporté, sans seuil imposé pour l'instant.
- Codecov — Un service hébergé qui reçoit les rapports de couverture depuis la CI, fournit un tableau de bord et un badge pour le README, et commente chaque PR avec la couverture du projet et du patch. Les statuts sont informatifs ici (voir ADR-0012).
- DTO (Data Transfer Object) — Un objet qui transporte des données à
travers une frontière, volontairement distinct des entités. Un DTO
...Formporte un formulaire HTML. - Failsafe — Le plugin Maven qui exécute les tests d'intégration
*ITdans la phaseverify. Ce projet ne l'utilise pas (voir ADR-0009). - FIFO (tube nommé) — Un fichier spécial qui transmet les données à la
lecture. Le
.envdu projet est une FIFO remplie par 1Password ; lesourcedu shell ne peut pas la lire (taille nulle austat). - HikariCP — Le pool de connexions JDBC fourni avec Spring Boot.
- Test d'intégration (integration test) — Un test qui démarre un contexte
Spring et exerce plusieurs couches ensemble (ici
@SpringBootTestcontre un vrai conteneur Postgres). - JaCoCo (Java Code Coverage) — L'outil de couverture de code pour Java.
Son plugin Maven instrumente les tests (
prepare-agent) et écrit un rapport HTML/XML danstarget/site/jacoco/pendant la phasetest; la CI le publie comme artefact de workflow. - Linter — Un outil qui signale les problèmes de style et de qualité dans le code source sans l'exécuter (analyse statique). Le linter du projet est Checkstyle.
- Lombok — Une bibliothèque qui génère le code répétitif (accesseurs, constructeurs) à partir d'annotations, à la compilation.
- MADR (Markdown ADR) — Le format léger de modèle d'ADR utilisé dans
docs/adr/. - Maven Wrapper (
mvnw) — Un script de lancement versionné qui télécharge et exécute la version de Maven épinglée par le projet, pour que les builds ne dépendent pas d'un Maven installé localement (utilisé par la CI :./mvnw -B -ntp ...). - Slice test (test de tranche) — Un test qui ne charge qu'une couche du
contexte (par exemple
@DataJpaTestpour la couche de persistance). - Smoke test (test de fumée) — Un test minimal vérifiant que le contexte
de l'application démarre (
LearnDevApplicationTests). - Surefire — Le plugin Maven qui exécute les tests
*Test/*Tests(unitaires et d'intégration) dans la phasetest. Tous les tests du projet passent par Surefire. - Testcontainers — Une bibliothèque qui démarre des conteneurs Docker/Podman jetables pour les tests ; utilisée pour exécuter un vrai PostgreSQL (voir ADR-0006).
- Ryuk — Le conteneur compagnon de Testcontainers qui nettoie les ressources ; désactivé sous Podman dans ce projet.
- YAGNI (You Aren't Gonna Need It) — Le principe de ne pas construire une
fonctionnalité avant d'en avoir réellement besoin (par exemple le report du
rôle
SUPERADMIN).
- Advisory check (contrôle consultatif) — Un contrôle de CI qui signale
les problèmes sans bloquer la fusion (goal en rapport seul et/ou
continue-on-error). Le lint et la couverture démarrent en mode consultatif ici (voir ADR-0011). - CI (intégration continue) — Construire et tester automatiquement chaque changement (chaque PR et chaque push) pour détecter les régressions au plus tôt. Mise en oeuvre avec GitHub Actions (issues #45 à #48).
- Docker Compose — L'orchestration déclarative de plusieurs conteneurs ;
fait tourner ici Postgres et Mongo. Sur la machine de développement,
dockerest Podman. - GitButler — L'outil de gestion de versions qui enveloppe Git ; utilisé
via la CLI
butquand la branche courante estgitbutler/workspace. - GitHub Actions — Le service de CI de GitHub. Chaque workflow est un
fichier YAML sous
.github/workflows/; ce projet utilise un workflow ciblé par préoccupation (voir ADR-0010). - Podman — Un moteur de conteneurs sans démon, utilisé comme remplaçant de
docker. - Runner (exécuteur) — La machine qui exécute un job GitHub Actions
(
ubuntu-latestici) ; elle embarque un démon Docker, que Testcontainers utilise directement. - Profil Spring (Spring profile) — Un jeu de configuration nommé (par
exemple
dev) qui sélectionne des propriétés spécifiques et des contextes Liquibase. - Temurin — La distribution Eclipse Adoptium de l'OpenJDK ; le build
Java 21 utilisé en local (via SDKMAN) et sur la CI (via
actions/setup-java). - Thymeleaf — Le moteur de templates HTML côté serveur. Son dialecte
Spring Security (espace de noms
sec:) expose l'utilisateur authentifié aux templates. - Workflow (GitHub Actions) — Un fichier YAML qui déclare quand
(déclencheurs) et comment (jobs, étapes) la CI s'exécute. Ce projet contient
build.yml,test.yml,lint.ymletschema-drift.yml. - Workflow artifact (artefact de workflow) — Un fichier ou dossier publié depuis une exécution de workflow et téléchargeable depuis la page de l'exécution (ici : le rapport XML de Checkstyle et les rapports JaCoCo).
- CCP (Certificat de Compétences Professionnelles) — Un bloc de compétences d'un Titre Professionnel français ; le DWWM comprend un CCP front-end et un CCP back-end.
- DWWM (Développeur Web et Web Mobile) — Le Titre Professionnel français visé par ce projet de fin de formation.
- REAC (Référentiel Emploi Activités Compétences) — Le référentiel officiel de compétences qui définit ce que la certification évalue.