Aller au contenu

Couverture Backend — Architecture Fonctionnelle vs Implémentation

Date : 2026-06-15 12:36
Référence : 20260613_1332_architecture-fonctionnelle.md
Périmètre : BackEnd — 16 modules DDD analysés


Synthèse exécutive

Modules fonctionnels Implémentés Partiels Manquants
9 modules architecture 6 2 1
Modèles Prisma couverts Modèles sans API dédiée
35 / 40 5 (CasOriente, PersonneRessource, AuditLog, Permission, ProfilPermission)

1. Correspondance par module fonctionnel


Module 1 — Authentification & Sécurité ✅ COMPLET

Module backend : Auth

Cas d'utilisation Implémenté Use case
Inscription compte utilisateur InscrireUtilisateurUseCase
Connexion + 2FA (TOTP / email) ConnexionUseCase, Verifier2FAUseCase, EnvoyerCode2FAUseCase
Gestion sessions (multi-appareils, expiration) ListerSessionsActivesUseCase, RevoquerSessionUseCase, RevoquerToutesSessionsUseCase
Réinitialisation mot de passe par token DemanderResetPasswordUseCase, ResetPasswordUseCase, VerifierTokenResetUseCase
Détection + blocage force brute BloquerIPUseCase, DetecterConnexionsSuspectesUseCase
Blacklistage IP suspectes BloquerIPUseCase, DebloquerIPUseCase
Backup codes 2FA GenererBackupCodesUseCase, VerifierBackupCodeUseCase, RevoquerCodesRecuperationUseCase
Journal sécurité ObtenirLogsSecuriteUseCase, ObtenirHistoriqueUseCase
Activation 2FA / désactivation Activer2FAUseCase, Desactiver2FAUseCase
Profil utilisateur ObtenirProfilUseCase, ModifierProfilUseCase, SupprimerCompteUseCase

Note : Le module Auth n'est pas enregistré via l'auto-discovery (*.module.routes.ts absent). Ses routes sont probablement montées manuellement dans server.ts ou AppDIConfiguration.ts.


Module 2 — Administration & Référentiels ⚠️ PARTIEL

Modules backend : Administration + Referentiels

Cas d'utilisation Implémenté Module backend
Référentiel géographique (communes) Referentiels — CRUD communes
Types d'accompagnement Referentiels — CRUD types
Profils utilisateurs Referentiels — CRUD profils
Configuration critères vulnérabilité Referentiels — Lister/Modifier ConfigCritere
Gestion utilisateurs (vue admin) Administration — CRUD + reset MDP + déblocage
Personnes-ressources (intervenants, animateurs) ABSENT
ActionAudit / RessourceAudit (référentiels d'audit) ⚠️ Schéma Prisma existant, pas de routes de gestion

Ce qui manque : - Module ou sous-routes PersonneRessource (CRUD complet : intervenants, animateurs, formateurs, avec type TypePersonneRessource)


Module 3 — Gestion des Acteurs de Terrain ✅ COMPLET

Modules backend : MaitresCoraniques + Tuteurs + Parents

Cas d'utilisation Implémenté Module backend
Maîtres coraniques (daara) : CRUD + localisation MaitresCoraniques
Tuteurs légaux et communautaires Tuteurs
Parents biologiques Parents
Association Parent ↔ Enfant ParentsAssocierEnfantParentUseCase

Module 4 — Identification & Suivi des Enfants ⚠️ PARTIEL

Modules backend : Enfants + Accompagnements + Evaluations (extension)

Cas d'utilisation Implémenté Module backend
Identification + enregistrement enfant talibé Enfants — CRUD
Suivi statut enregistrement (actif/sorti/perdu/décédé) EnfantsChangerStatutEnfantUseCase
Ouverture dossier accompagnement AccompagnementsCreerAccompagnementUseCase
Visites de suivi sur accompagnement AccompagnementsCreerSuiviUseCase, ListerSuivisUseCase
Clôture + changement statut accompagnement AccompagnementsChangerStatutAccompagnementUseCase
Évaluation vulnérabilité (6 critères) Evaluations — 5 use cases (module non prévu dans l'architecture initiale)
Orientation formelle vers services externes (CasOriente) ABSENT

Ce qui manque : - Sous-ressource CasOriente dans Accompagnements — routes : GET/POST /accompagnements/:id/cas-orientes, PUT/DELETE /accompagnements/:accompagnementId/cas-orientes/:casId - Champs : serviceDestinataire, typeOrientation, dateOrientation, dateRetourInfo, suitesDonnees


Module 5 — Insertion Socio-Économique ✅ COMPLET

Module backend : Insertion

Cas d'utilisation Implémenté Use case
Inscription formation professionnelle CreerParcoursInsertionUseCase
Suivi CQM (certificat qualification) ChangerStatutUseCaseCQM_OBTENU
Suivi plan d'affaires + micro-subvention Statut INSTALLE
Traçabilité du parcours complet Transitions EN_FORMATION → CQM_OBTENU → INSTALLE

Module 6 — Sensibilisation & Communication ✅ COMPLET

Module backend : Formations (contient aussi la sensibilisation)

Cas d'utilisation Implémenté Use case / Handler
Formations / sessions de sensibilisation CreerFormationUseCase + participations + présence
Traçabilité des participants AjouterParticipationUseCase, TogglePresenceUseCase
Supports de communication CreerSupportUseCase, ListerSupportsUseCase
Distributions de supports par commune CreerDistributionUseCase
Émissions radio CreerEmissionUseCase, ModifierEmissionUseCase
Éducateurs pairs CreerEducateurUseCase, ModifierEducateurUseCase

Module 7 — Mobilisation Communautaire & Gouvernance ✅ COMPLET

Module backend : Mobilisation

Cas d'utilisation Implémenté Routes
Comités villageois — CRUD + cycle de vie GET/POST /comites, PATCH /comites/:id/statut
Membres des comités GET/POST /comites/:id/membres
Réunions de comité GET/POST /comites/:id/reunions
Cadres de concertation (multi-niveaux) GET/POST /cadres-concertation
Sessions de concertation GET/POST /cadres-concertation/:id/sessions
Groupes de parole / parlements jeunes GET/POST /sessions-parole
Participations aux sessions (genre, tranche d'âge) GET/POST /sessions-parole/:id/participations

Module 8 — Études, Diagnostic & Pilotage ✅ COMPLET

Modules backend : Pilotage + Rapports

Cas d'utilisation Implémenté Module
Études diagnostiques communales Pilotage — CRUD EtudeDiagnostique
Indicateurs de suivi (définition + cibles) Pilotage — CRUD IndicateurSuivi
Saisie périodique des mesures PilotageSaisirMesureUseCase, ModifierMesureUseCase
Tableau de bord analytique RapportsObtenirTableauDeBordUseCase
KPIs par période RapportsObtenirKPIsPeriodeUseCase
Répartitions géographiques et thématiques Rapports — 3 use cases répartition
Fiche enfant RapportsObtenirFicheEnfantUseCase
Bilan formation RapportsObtenirBilanFormationUseCase

Module 9 — Audit Applicatif ❌ ABSENT

Module backend : aucun module dédié

Cas d'utilisation Implémenté Situation actuelle
Traçabilité des actions utilisateurs ⚠️ AuditLog écrit via Auth, pas de route de lecture
Journal d'audit consultable Pas de route GET /audit
Filtres (acteur, action, ressource, IP, période) Pas implémenté
Consultation historique pour contrôle interne Pas implémenté

2. Modules backend sans correspondance directe dans l'architecture

Module backend Rôle Lien fonctionnel
Evaluations Évaluation de vulnérabilité des enfants (6 critères, score, niveau N1-N4) Extension du Module 4 — complète le dossier enfant
ImportExcel Import de données en masse via fichier Excel Utilitaire transverse — alimentation initiale de la base
Synchronisation Synchronisation offline/online (delta sync par idUtilisateur) Utilitaire — support des agents de terrain sans connexion permanente

3. Modèles Prisma sans API dédiée

Modèle Prisma Module architecture Situation
CasOriente Module 4 Schéma existant, aucune route ni use case — à implémenter
PersonneRessource Module 2 Schéma existant, aucune route ni use case — à implémenter
AuditLog Module 9 Données écrites par Auth, aucune route de consultation — à implémenter
Permission Transverse RBAC Seed existant (30 permissions), pas d'API de gestion publique
ProfilPermission Transverse RBAC Seed existant, pas d'API de gestion publique

4. Ce qui reste à implémenter

Priorité 1 — Fonctionnalités métier manquantes

4.1 CasOriente (Module 4 — Accompagnements)

Intégrer comme sous-ressource du module Accompagnements.

Routes à ajouter :

GET    /api/v1/esm/accompagnements/:id/cas-orientes       — lister les cas orientés
POST   /api/v1/esm/accompagnements/:id/cas-orientes       — créer une orientation
GET    /api/v1/esm/accompagnements/:id/cas-orientes/:casId — obtenir un cas
PUT    /api/v1/esm/accompagnements/:id/cas-orientes/:casId — modifier (suites données)
DELETE /api/v1/esm/accompagnements/:id/cas-orientes/:casId — supprimer

Use cases : CreerCasOriente, ObtenirCasOriente, ListerCasOrientes, ModifierCasOriente, SupprimerCasOriente


4.2 PersonneRessource (Module 2 — Referentiels)

Ajouter au module Referentiels (ou créer un module PersonnesRessources séparé).

Routes à ajouter :

GET    /api/v1/esm/personnes-ressources       — lister (filtre par type, commune)
POST   /api/v1/esm/personnes-ressources       — créer
GET    /api/v1/esm/personnes-ressources/:id   — obtenir
PUT    /api/v1/esm/personnes-ressources/:id   — modifier
DELETE /api/v1/esm/personnes-ressources/:id   — supprimer

Use cases : CreerPersonneRessource, ListerPersonnesRessources, ObtenirPersonneRessource, ModifierPersonneRessource, SupprimerPersonneRessource


4.3 Module Audit Applicatif (Module 9)

Créer un module Audit dédié ou étendre Administration.

Routes à ajouter :

GET /api/v1/esm/audit/logs         — journal d'audit (filtre : acteur, action, ressource, période, IP)
GET /api/v1/esm/audit/logs/:id     — détail d'un log

Use cases : ListerLogsAudit, ObtenirLogAudit, (ExporterLogsAudit optionnel)


Priorité 2 — Module Auth : routes auto-discovery

Le module Auth n'a pas de fichier auth.module.routes.ts (routes montées manuellement). Si la cohérence avec le système auto-discovery est requise, créer : - Auth/infrastructure/http/routes/auth.module.routes.ts


Priorité 3 — RBAC : API de gestion (optionnel)

Les modèles Permission et ProfilPermission sont seeded (30 permissions, 5 profils) mais sans API de gestion. Si une interface d'administration des permissions est nécessaire :

GET /api/v1/esm/admin/permissions
GET /api/v1/esm/admin/profils/:id/permissions
PUT /api/v1/esm/admin/profils/:id/permissions   — affecter permissions à un profil


5. Tableau de bord récapitulatif

Module architecture Backend module(s) Statut Lacune
M1 — Auth & Sécurité Auth ✅ Complet Routes hors auto-discovery
M2 — Admin & Référentiels Administration + Referentiels ⚠️ Partiel PersonneRessource manquant
M3 — Acteurs de terrain MaitresCoraniques + Tuteurs + Parents ✅ Complet
M4 — Enfants & Accompagnements Enfants + Accompagnements + Evaluations ⚠️ Partiel CasOriente manquant
M5 — Insertion Insertion ✅ Complet
M6 — Sensibilisation Formations ✅ Complet
M7 — Mobilisation Mobilisation ✅ Complet
M8 — Pilotage Pilotage + Rapports ✅ Complet
M9 — Audit (absent) ❌ Manquant Module entier à créer
(hors archi) Evaluations ➕ Extension Complète M4
(hors archi) ImportExcel ➕ Utilitaire Import masse
(hors archi) Synchronisation ➕ Utilitaire Offline/online

Score couverture fonctionnelle : 6 modules complets + 2 partiels + 1 absent = 75 % des modules architecture

Score couverture modèles Prisma : 35 / 40 modèles avec API dédiée = 87,5 %


Document généré le 2026-06-15 12:36