Développement
Contexte
Le projet a été structuré autour de deux applications distinctes (deux dépôts Git), avec des cycles de vie indépendants, reposant sur la compatibilité des contrats d’API.
L’exigence de qualité du code a été centrale, avec une approche inspirée du software craftsmanship : Clean Architecture pour une évolutivité maîtrisée, Clean Code pour un code lisible et robuste, et l’application systématique des bonnes pratiques. Cette rigueur garantit des solutions durables, performantes et adaptables, tout en limitant la dette technique.
Périmètre
Application Backend - Java/SpringBoot au service de la robustesse et de l’interopérabilité
L’application backend, développée en Java/Spring Boot, adopte une approche « API-First » pour une interopérabilité optimale avec le SI de l’Université Paris Dauphine. Intégrant des principes de Clean Architecture et Clean Code, elle garantit un code modulaire, testable et maintenable, avec une couverture systématique par des tests unitaires.
Focus Technologies :
- JPA/Hibernate pour la persistance et l’intégrité des données.
- Spring Security pour l’authentification (CAS) et le contrôle d’accès par rôles.
- Flyway pour les migrations de base de données.
- Caffeine pour le cache des données fréquemment sollicitées.
- MapStruct pour générer automatiquement des mappers, facilitant l’isolation des couches conformément à la Clean Architecture.
Focus Outillage :
- Environnement de développement Docker.
- Linters pour uniformiser le code.
- Redocly pour la documentation OpenAPI.
- JaCoCo/SonarQube/Quodana pour la qualité.
- GitLab-CI pour automatiser tests et déploiements.
Depuis sa mise en production en 2023, cette approche a permis un taux d’anomalies très faible, confirmant la robustesse de l’application.
Application Frontend - Angular/TailwindCSS une UI/UX centrée sur l’utilisateur et la performance
Notre approche « Mobile-First » a permis de concevoir une application performante, intuitive et adaptée aux besoins des gestionnaires (richesse fonctionnelle) et des étudiants (simplicité et accessibilité mobile).
Angular a été choisi pour ses composants réactifs, tandis que TailwindCSS a garanti une interface moderne et responsive. La Clean Architecture a structuré le code en isolant la couche de communication (API backend) et la couche de présentation (UI), renforçant la maintenabilité.
La qualité a été assurée par :
- TypeScript pour un code robuste.
- Le principe SRP pour une modularité optimale.
- Des tests end-to-end (Cypress) pour valider la stabilité.
Depuis son déploiement, l’application affiche un taux d’anomalies quasi nul, confirmant sa fiabilité et son évolutivité.