Aller au contenu

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.