Aller au contenu

Documentation développeur

Bienvenue dans la doc technique de VigieChiro Companion. Elle s'adresse à qui veut lire, modifier ou étendre le code (humain comme assistant IA).

Vous cherchez plutôt à utiliser l'application ?

Voir la documentation utilisateur (prise en main, écrans, parcours). Le besoin métier d'origine est dans le brief.

La pile en bref

Élément Choix
Langage / runtime Java 25 (JDK standard, pas un JDK packagé FX)
IHM JavaFX 26 (dépendances Maven), Headless Platform pour les tests
Persistance SQLite (fichier local), DAO en PreparedStatement (pas d'ORM)
Injection de dépendances Guice 7
Build Maven Wrapper ./mvnw (aucune install de Maven)
Tests JUnit 5, AssertJ, Mockito, TestFX (headless), ApprovalTests
Qualité PMD, Spotless (Palantir), JaCoCo, ArchUnit
Licence GPL v3

Le dépôt en un écran

vigiechiro-pr-companion/
├── src/main/java/fr/univ_amu/iut/   ← le code (architecture paquet-par-fonctionnalité, cf. Architecture)
├── src/main/resources/db/migration/ ← migrations SQLite versionnées (V0x__*.sql)
├── src/test/java/                   ← tests (métier, MVVM, TestFX, ArchUnit, e2e)
├── docs/ + mkdocs.yml               ← documentation UTILISATEUR (site séparé)
├── dev-docs/ + mkdocs-dev.yml       ← CETTE documentation développeur (site /dev/)
├── .github/workflows/               ← CI : maven, lint (qualité), docs, captures, release
├── .github/assets/                  ← aperçus PNG des écrans + harnais de capture
├── pom.xml                          ← build + profils (quality-gate, installer jpackage)
├── CONTRIBUTING.md · TESTING.md · SECURITY.md
└── README.md                        ← présentation produit + « Sous le capot »

Démarrer en 30 secondes

Prérequis : un JDK 25 standard (Temurin / 25.0.2-open). Tout passe par ./mvnw.

git clone https://github.com/echonuit/vigiechiro-pr-companion.git
cd vigiechiro-pr-companion
./mvnw verify      # compile + tests + contrôles qualité (doit afficher BUILD SUCCESS)
./mvnw javafx:run  # lance l'application

Piège classique : NPE PlatformFactory en headless

Vous utilisez un JDK packagé avec JavaFX (type fx-zulu). Prenez un JDK 25 standard : JavaFX vient des dépendances Maven, pas du JDK. Détails dans Tests et qualité.

Par où continuer

  • Architecture

    Paquet-par-fonctionnalité + MVVM, le socle commun, et les règles d'architecture vérifiées automatiquement (ArchUnit).

  • Ajouter une fonctionnalité

    Le tutoriel pas à pas : du modèle à l'écran, en passant par la navigation inter-feature.

  • Tests et qualité

    TestFX headless, taxonomie, ArchUnit, PMD/Spotless/JaCoCo, et ce qui bloque la CI.

  • Modèle de données

    Le MCD Merise (vocabulaire du brief), le schéma physique SQLite, et la correspondance concept → record → table.

  • Glossaire du domaine

    Les mots : nuit / passage / participation, « lot » déprécié, et le vocabulaire du verdict (état livré et cible du chantier #1524).

  • Ligne de commande

    La seconde façade headless sur le métier : sous-commandes, injecteur enfant, scriptabilité.

  • Décisions (ADR)

    Le journal des choix d'architecture : le pourquoi des décisions structurantes, une par page. Alimenté à la passe 3 de chaque clôture de chantier.

  • Contribuer

    Le flux fork → branche → PR et les conventions de commit : CONTRIBUTING.md.

Documents de référence au repo-root

CONTRIBUTING.md · TESTING.md · SECURITY.md · note de performance. Ces pages restent la source canonique ; cette doc les met en perspective et les approfondit côté dév : Sécurité et données sensibles · Performance et benchmarks.