SafetyNet Alerts - API REST
SafetyNet Alerts est une API REST conçue pour centraliser et exposer des données utiles aux services de secours. Récupère et met à jour des informations liées aux personnes, afin d’améliorer la réactivité en situation d’urgence.

Vue d'ensemble
SafetyNet Alerts est une API REST développée en Java avec Spring Boot, visant à fournir des informations aux services de secours à partir de données locales (personnes, casernes, dossiers médicaux). Réalisé dans le cadre de ma formation, ce projet m’a permis de concevoir un backend structuré, avec un focus sur la maintenabilité, la qualité du code et les tests.
Problématique
L’enjeu du projet était de concevoir une API capable de traiter et exposer des données critiques de manière fiable. Les données étant issues d’un fichier JSON, il a fallu mettre en place une persistance capable de supporter les opérations CRUD tout en conservant les modifications après redémarrage. Le projet imposait également le respect de contraintes strictes : architecture MVC, principes SOLID, logging structuré et couverture de tests.
Architecture
L’application repose sur une architecture MVC avec une séparation claire des responsabilités. Les contrôleurs exposent les endpoints REST et délèguent aux services, qui portent la logique métier. Les repositories gèrent l’accès et la persistance des données JSON. Les DTO permettent de contrôler les échanges et de ne pas exposer directement le modèle. La gestion des erreurs est centralisée via un GlobalExceptionHandler, et une stratégie de logs structurée est mise en place (INFO, DEBUG, ERROR).
Fonctionnalités
- API REST avec endpoints fonctionnels et CRUD
- Lecture et écriture des données depuis un fichier JSON persistant
- Gestion centralisée des erreurs (Global Exception Handler, ProblemDetail)
- Architecture MVC avec séparation des responsabilités
- DTO pour sécuriser les échanges et structurer les réponses
- Tests unitaires et Web MVC avec couverture mesurée (JaCoCo)
- Logging structuré (INFO, DEBUG, ERROR)
Défis
- Mettre en place une persistance JSON fiable avec conservation des données après redémarrage
- Structurer l’application selon les principes MVC et SOLID
- Maintenir une bonne couverture de tests (unitaires et Web MVC)
- Gérer proprement les erreurs et les réponses HTTP

