Le Besoin Métier
- Centralisation documentaire : Regrouper l'ensemble des documents juridiques (articles, décisions, commentaires) en lien avec des ouvrages et auteurs de référence
- Versioning et archivage : Gérer le cycle de vie complet des documents (brouillon → publié → obsolète) avec traçabilité complète des versions
- Collaboration structurée : Permettre à des équipes d'utilisateurs d'annoter, commenter et organiser collectivement la documentation juridique
- Organisation par métadonnées : Système flexible de tags hiérarchiques pour classifier et retrouver rapidement l'information
- Sécurité et droits d'accès : Contrôler finement qui peut consulter, créer, modifier, publier ou supprimer des documents selon des profils de droits
Les Questions Posées
- Comment gérer efficacement plusieurs versions d'un même document juridique ?
- Comment organiser une base documentaire sans structure fixe prédéfinie ?
- Comment intégrer des données juridiques officielles externes ?
- Comment garantir la sécurité des données sensibles ?
- Comment permettre l'annotation personnelle sans polluer la base commune ?
La Solution Sur Mesure
Architecture Technique
- Architecture 3-tiers moderne
- Intégrations externes :
- Keycloak (OAuth2/OpenID Connect)
- Legifrance API (données juridiques)
- Patterns architecturaux utilisés:
- DAO Pattern : Abstraction de l'accès aux données avec interfaces génériques
- Service Layer Pattern : Logique métier isolée dans des services réutilisables
- DTO Pattern : Séparation entités persistantes / objets de transfert avec ModelMapper
- Generic Repository : GenericDao et GenericService pour mutualiser le code CRUD
- Resource Server OAuth2 : Délégation d'authentification à Keycloak
- Reactive Programming : WebFlux pour les appels API externes
Fonctionnalités Clés
- Gestion Documentaire Complète
- Système de Versioning Intelligent
- Organisation par Tags Hiérarchiques
- Collaboration Multi-utilisateurs
- Référentiels Métier
- Intégration API Externe
- Sécurité Renforcée
Technologies Utilisées
Backend
- Java 21 - Langage principal
- Spring Boot 3.3.1 - Framework applicatif
- Spring Security - Authentification OAuth2/JWT, CSRF, CORS
- Spring WebFlux - Client HTTP réactif pour API externes
- MyBatis 3.0.3 - Mapper objet-relationnel (ORM)
- MariaDB - Base de données relationnelle
- ModelMapper 3.2.0 - Conversion Bean/DTO
- JSoup 1.18.1 - Parsing HTML
- GSON 2.11.0 - Sérialisation JSON
Frontend
- Angular 18.0.6 - Framework SPA
- TypeScript 5.4.2 - Langage
- Bootstrap 5.3.3 - UI/CSS
- Keycloak-Angular 16.0.1 - Intégration authentification
- D3.js 7.9.0 + d3-org-chart - Visualisations (organigrammes)
- ng-select 13.4.1 - Sélecteurs avancés
- ngx-toastr 19.0.0 - Notifications
- CryptoJS 4.2.0 - Cryptographie côté client
Sécurité & Infrastructure
- Keycloak 25.0.1 - Serveur d'identité (IAM)
- OAuth2 / OpenID Connect - Protocoles d'authentification
- JWT - Tokens d'accès
Outils de build
- Maven 3.x - Gestion de dépendances backend
- npm / Angular CLI - Gestion frontend
Défis et Apprentissages
Défis techniques rencontrés
- Gestion complexe du versioning
- Sécurité multi-couches
- Architecture générique réutilisable
- Intégration API externe avec authentification
- Tags hiérarchiques flexibles
- Protection CSRF en architecture SPA
Apprentissages clés
- Maîtrise de MyBatis pour mapping SQL complexe (requêtes avec associations multiples)
- Intégration OAuth2 Resource Server avec Keycloak
- Gestion d'architecture générique pour réduire la duplication de code
- Implémentation de patterns d'entreprise (DAO, Service Layer, DTO)
- Programmation réactive avec Spring WebFlux pour appels API
Impact
Statut actuel
- Version 1.2 en développement actif
Bénéfices attendus
-
Gain de productivité
- Réduction du temps de recherche documentaire grâce au système de tags et filtres
- Centralisation de toute la documentation juridique (élimination de sources dispersées)
-
Amélioration de la qualité
- Versioning intégral : traçabilité complète des modifications
- Validation par publication : séparation brouillons/documents validés
- Annotations collaboratives pour enrichissement continu
-
Sécurité et conformité
- Contrôle d'accès granulaire par profil de droits
- Authentification centralisée (SSO Keycloak)
- Traçabilité complète (qui a créé/modifié quoi et quand)
-
Collaboration renforcée
- Travail d'équipe structuré autour de tags communs
- Notes personnelles pour annotations privées
- Système de responsabilité par équipe
-
Enrichissement automatique
- Intégration future de données Legifrance officielles
- Possibilité d'enrichir la base avec des sources externes validées
-
Évolutivité
- Architecture générique facilitant l'ajout de nouvelles entités
- Système de tags flexible s'adaptant à toute taxonomie
- API REST documentée pour intégrations futures
Ce rapport reflète un projet d'application d'entreprise robuste pour la gestion documentaire juridique, avec une architecture moderne et des standards industriels (Spring Boot, OAuth2, SPA Angular), en CI/CD.