Trackix - Plateforme de gestion des tickets (Style Jira)
Gestion des tickets d'entreprise avec Spring Boot, JWT, RBAC et couverture de tests à +90%.
Dans cette étude de cas
Vue d'ensemble
Un backend de gestion de tickets de style Jira construit avec une architecture en couches Spring Boot 3. Les fonctionnalités incluent le contrôle d'accès basé sur les rôles (RBAC) basé sur JWT, des spécifications JPA pour le filtrage dynamique et des tests unitaires approfondis avec Mockito et JUnit pour garantir la fiabilité et la maintenabilité.
Résultats
- Un backend en couches qu'un nouveau contributeur peut lire de haut en bas en une seule fois.
- Des règles de permissions appliquées une fois, vérifiées partout grâce aux tests.
Fonctionnalités clés
- Sécurité RBAC
- Filtrage Dynamique
- Couverture de test >90%
- Documentation API REST
Architecture
Architecture en couches Spring Boot 3: contrôleurs validant à l'entrée, services détenant les règles métier, repositories branchés sur PostgreSQL. La sécurité est traitée indépendamment du code métier via l'authentification JWT et l'autorisation par rôles, afin que les permissions soient revérifiées à chaque couche au lieu de faire confiance au frontend.
Choix techniques
Les principaux choix derrière l'implémentation.
- Authentification stateless via JWT: l'API évolue horizontalement sans état de session central.
- RBAC sur chaque endpoint: un attribution de rôle est appliquée côté serveur, jamais déduite.
- Spécifications JPA plutôt que SQL artisanal: filtrage dynamique composable depuis l'UI.
- Mockito + JUnit dès le premier jour: la testabilité a façonné la conception, pas l'inverse.
Défis rencontrés
Modéliser une matrice de permissions d'entreprise (qui peut faire passer quel ticket dans quel état) sans que le code devient un fouillis de règles: résolu en centralisant les gardes et en les prouvant par +90% de couverture de tests unitaires.