Autres Cas d'utiisation et tables complémentaires
Autres Cas d'utiisation et tables complémentaires
1. Correspondance Cadre Logique ↔ Liste des activités/indicateurs¶
Globalement : bonne cohérence, mais avec des écarts.
Ce qui correspond bien¶
Les activités et indicateurs du fichier Excel couvrent fidèlement les résultats R1.1, R2.1, R3.1, R1.2 et R2.2 du cadre logique. La structure hiérarchique Résultat → Activité → Indicateur est respectée.
Écarts et incohérences détectés¶
Numérotation incohérente dans R3.1 :
Le cadre logique et l'Excel ne s'accordent pas sur les numéros d'indicateurs. Dans le cadre logique on voit 3.1.1.2 pour "sessions de groupe de parole" puis 3.1.1.2 à nouveau pour "sessions animées par le parlement" — doublon de numéro. L'Excel corrige partiellement en utilisant 3.1.1.2, 3.1.1.3, 3.1.1.4 mais ça ne correspond plus aux numéros du cadre logique.
Indicateur manquant dans R1.2 :
Le cadre logique mentionne l'indicateur 1.2.1.2 : Nombre de membres des comités villageois formés (cible : 600), mais l'Excel le numérote 12.1.3 — probable faute de frappe qui pourrait causer des problèmes de traçabilité.
Indicateurs d'effet et de résultat au niveau OS non couverts dans l'Excel :
Les indicateurs de niveau OS (OS1 et OS2) présents dans le cadre logique ne figurent pas dans l'Excel :
- Indicateur 1.1.1 : Proportion membres communautés avec connaissance accrue (80%)
- Indicateur 1.2.1 : % maîtres coraniques enregistrés officiellement (70%)
- Indicateur 1.2.2 : % maîtres coraniques formés (90%)
- Indicateur 1.3.1 : % ESM installés et exerçant le métier (90%)
- Indicateurs 2.1.1, 2.1.2, 2.2.1, 2.2.2
Ce sont des indicateurs de résultat de niveau supérieur — ils ne sont pas collectés en activité, mais ils devront être calculés/agrégés dans le système.¶
2. Ce que le système actuel ne couvre pas — Nouvelles tables et cas d'usage¶
En croisant le cadre logique avec le schéma Prisma actuel, voici les lacunes fonctionnelles importantes.¶
A. Étude diagnostique et cartographie (Activité 1.1.1)¶
Le cadre demande un rapport d'étude diagnostique avec cartographie des zones d'intervention. Rien dans le schéma ne permet de tracer ça.
Tables à ajouter :
model EtudeDiagnostique {
id String @id @default(cuid())
titre String
dateDebut DateTime
dateFin DateTime?
statut StatutEtude // EN_COURS, FINALISEE, VALIDEE
rapport String? // lien vers document
communes String[] // communes couvertes
observations String?
idUtilisateur String
createdAt DateTime @default(now())
updatedAt DateTime @default(now())
}
CU : Enregistrer et valider l'étude diagnostique initiale
B. Supports de communication (Activité 1.1.2)¶
200 boîtes à images, 500 affiches, 4 roll-up — le cadre logique suit leur conception et leur distribution aux éducateurs pairs.
Tables à ajouter :
model SupportCommunication {
id String @id @default(cuid())
type TypeSupport // BOITE_IMAGE, AFFICHE, ROLLUP, BANDEROLE
quantiteProduite Int
langues String[]
dateProduction DateTime?
distributions DistributionSupport[]
}
model DistributionSupport {
id String @id @default(cuid())
supportId String
communeCode String?
destinataire String // educateur pair, acteur communautaire
quantite Int
dateDistribution DateTime
}
CU : Enregistrer la production et la distribution des supports de communication
C. Éducateurs pairs (Indicateur 1.1.2.2 — 150 pairs formés)¶
Un éducateur pair est un acteur clé non modélisé. Il est différent d'une PersonneRessource (qui est animateur/formateur professionnel).
Table à ajouter :
model EducateurPair {
id String @id @default(cuid())
nom String
prenom String
telephone String?
communeCode String?
quartier String?
genre Genre?
dateFormation DateTime?
actif Boolean @default(true)
createdAt DateTime @default(now())
}
CU : Enregistrer et suivre les éducateurs pairs formés
D. Émissions radio (Indicateur 1.1.3.2 — 324 émissions)¶
Le cadre logique suit les émissions réalisées avec des contrats radio. Rien dans le schéma ne couvre ça.
Table à ajouter :
model EmissionRadio {
id String @id @default(cuid())
stationRadio String
communeCode String?
dateEmission DateTime
dureeMinutes Int?
theme String?
langue String?
contratRef String? // référence du contrat
idUtilisateur String
createdAt DateTime @default(now())
}
CU : Enregistrer les émissions radio réalisées
E. Comités villageois de veille (Activité 1.2.1 — 30 comités, 600 membres)¶
C'est un domaine entier non couvert : création, dynamisation, membres, réunions, taux de participation.
Tables à ajouter :
model ComiteVillageois {
id String @id @default(cuid())
nom String
communeCode String
village String
statut StatutComite // CREE, DYNAMISE, ACTIF, INACTIF
dateCreation DateTime
membres MembreComite[]
reunions ReunionComite[]
createdAt DateTime @default(now())
}
model MembreComite {
id String @id @default(cuid())
comiteId String
nom String
prenom String
genre Genre?
role String? // président, secrétaire, membre
telephone String?
dateAdhesion DateTime
forme Boolean @default(false) // a reçu la formation
}
model ReunionComite {
id String @id @default(cuid())
comiteId String
dateReunion DateTime
nbPresents Int
nbAttendus Int
decisionsActees String?
observations String?
idUtilisateur String
createdAt DateTime @default(now())
}
CU : Créer un comité, gérer ses membres, enregistrer les réunions et calculer le taux de participation
F. Cadres de concertation (Activité 2.2.x — comités de pilotage, concertations communales, interdépartementales)¶
Trois types de concertation avec taux de participation à 90%. Non couvert du tout.
Table à ajouter :
model CadreConcertation {
id String @id @default(cuid())
type TypeConcertation // PILOTAGE, COMMUNAL, INTERDEPARTEMENTAL
communeCode String?
departement String?
periodicite TypePeriodicite // TRIMESTRIEL, SEMESTRIEL, ANNUEL
sessions SessionConcertation[]
createdAt DateTime @default(now())
}
model SessionConcertation {
id String @id @default(cuid())
cadreConcertationId String
dateSession DateTime
nbParticipantsAttendus Int
nbParticipantsPresents Int
decisionsCount Int @default(0)
decisionsAppliquees Int @default(0)
observations String?
idUtilisateur String
createdAt DateTime @default(now())
}
CU : Suivre les sessions de concertation et mesurer les indicateurs 2.2.x.x
G. Prise en charge holistique (Activité 3.1.3)¶
Appui alimentaire, soutien psychologique, santé, alphabétisation — ce sont 4 volets distincts d'une prise en charge, non modélisés dans Accompagnement.
Le TypeAccompagnement existant pourrait absorber une partie, mais l'indicateur 3.1.3.1 demande de tracer quel volet chaque enfant a reçu. Il faudra soit enrichir Accompagnement soit créer :
model PriseEnChargeHolistique {
id String @id @default(cuid())
enfantId String
appuiAlimentaire Boolean @default(false)
soutienPsychologique Boolean @default(false)
prisEnChargeSanitaire Boolean @default(false)
alphabetisation Boolean @default(false)
dateDebut DateTime
dateFin DateTime?
observations String?
idUtilisateur String
createdAt DateTime @default(now())
}
CU : Enregistrer et suivre la prise en charge holistique de chaque ESM
H. Formation professionnelle et insertion (Activité 3.1.4)¶
CQM (Certificat de Qualification aux Métiers), plan d'affaire, micro-subvention, installation — séquence d'insertion complète non couverte.
model ParcoursInsertion {
id String @id @default(cuid())
enfantId String
metierCible String?
maitrArtisanNom String? // contrat avec maître artisan
dateInscriptionFormation DateTime?
dateObtentionCQM DateTime?
planAffaireDate DateTime?
microSubventionMontant Decimal?
microSubventionDate DateTime?
dateInstallation DateTime?
statut StatutInsertion // EN_FORMATION, CQM_OBTENU, INSTALLE, ABANDONNE
observations String?
idUtilisateur String
createdAt DateTime @default(now())
}
CU : Suivre le parcours complet d'insertion d'un ESM de la formation jusqu'à l'installation
I. Groupes de parole / Parlement des jeunes (Activité 3.1.2)¶
216 sessions prévues, 45 animées par le parlement des jeunes, 150 participants. Non couvert — distinct des FormationSensibilisation.
model SessionParoleJeunes {
id String @id @default(cuid())
type TypeSession // GROUPE_PAROLE, PARLEMENT_JEUNES
dateSession DateTime
communeCode String?
theme String?
nbParticipants Int @default(0)
animateur String?
observations String?
idUtilisateur String
createdAt DateTime @default(now())
}
3. Synthèse — Vue d'ensemble des lacunes¶
| Domaine manquant | Tables à créer | Indicateurs couverts |
|---|---|---|
| Étude diagnostique | EtudeDiagnostique |
1.1.1.1, 1.1.1.2 |
| Supports de communication | SupportCommunication, DistributionSupport |
1.1.2.1 |
| Éducateurs pairs | EducateurPair |
1.1.2.2 |
| Émissions radio | EmissionRadio |
1.1.3.2 |
| Comités villageois | ComiteVillageois, MembreComite, ReunionComite |
1.2.1.1, 12.1.2, 12.1.3, 1.2.2.1, 1.2.2.3 |
| Cadres de concertation | CadreConcertation, SessionConcertation |
2.2.1.1, 2.2.2.1, 2.2.2.2, 2.2.3.1 |
| Prise en charge holistique | PriseEnChargeHolistique |
3.1.3.1 |
| Parcours insertion | ParcoursInsertion |
3.1.4.1 à 3.1.4.4 |
| Sessions parole/jeunes | SessionParoleJeunes |
3.1.1.2, 3.1.1.3, 3.1.1.4 |
Le schéma actuel couvre bien le cœur opérationnel (enfants, maîtres, accompagnements, formations), mais presque rien des mécanismes de gouvernance et de redevabilité (comités, concertations) ni du parcours d'insertion (CQM, AGR, micro-subvention) qui sont au cœur des indicateurs MEAL de ce projet.