Aller au contenu

Analyse — Indicateurs du cadre logique dans ProjetESM

Générée le 2026-06-19 12h48


1. Documents de référence

  • Cadre logique.docx — chaîne de résultats, indicateurs, hypothèses
  • Liste des activités et des indicateurs.xlsx — indicateurs par activité, valeurs SR/cibles, responsables

2. Structure existante — Module Pilotage (DDD 5 couches)

Le module Pilotage est entièrement implémenté et fonctionnel.

Backend

Couche Fichiers
Domain IndicateurSuivi.ts, MesureIndicateur.ts, interfaces repositories, schemas Zod
Application CreerIndicateurUseCase, ModifierIndicateurUseCase, ListerIndicateursUseCase, ObtenirIndicateurUseCase, SaisirMesureUseCase, ModifierMesureUseCase, ListerMesuresUseCase, ObtenirMesureUseCase
Infrastructure IndicateurSuiviRepositoryPrisma, MesureIndicateurRepositoryPrisma, DI, routes
Interface-adapters Controllers (Créer, Modifier, Lister, Obtenir), Handlers
Routes GET/POST /api/v1/pilotage/indicateurs, GET/PUT /api/v1/pilotage/indicateurs/:id, GET/POST /api/v1/pilotage/mesures, GET/PUT /api/v1/pilotage/mesures/:id

Frontend

  • PilotagePage.tsx : formulaire modal + tableau des indicateurs, hooks React Query, store Zustand, use cases frontend

Modèle Prisma actuel

model IndicateurSuivi {
  id          String             @id @default(cuid())
  code        String             @unique
  libelle     String
  resultatRef String             // ex: "R1.1", "A1.1.1"
  valeurRef   String?            // situation de référence (souvent "ND")
  valeurCible String?            // cible du projet (ex: "324", "80%")
  unite       String?            // %, nombre, rapport, etc.
  createdAt   DateTime           @default(now())
  updatedAt   DateTime           @default(now())
  mesures     MesureIndicateur[]
}

model MesureIndicateur {
  id            String          @id @default(cuid())
  indicateurId  String
  valeur        String
  dateMesure    DateTime
  sourceVerif   String?
  periode       String?
  idUtilisateur String
  // contrainte d'unicité : (indicateurId, periode)
}

3. Problème identifié — Séparation des droits

La permission INDICATEUR_SAISIR est attribuée à MEAL_COMMUNAL et MEAL_NATIONAL, mais elle couvre deux responsabilités distinctes :

Action Qui peut le faire ? Permission actuelle Permission souhaitée
Lire les indicateurs Tous INDICATEUR_LIRE INDICATEUR_LIRE
Saisir les mesures périodiques MEAL_COMMUNAL + MEAL_NATIONAL INDICATEUR_SAISIR INDICATEUR_SAISIR
Créer/modifier un indicateur MEAL_NATIONAL seulement INDICATEUR_SAISIRtrop large INDICATEUR_CREERà créer

→ Il faut créer la permission INDICATEUR_CREER, distincte de INDICATEUR_SAISIR.

Matrice cible :

Profil INDICATEUR_LIRE INDICATEUR_SAISIR INDICATEUR_CREER
AGENT_TERRAIN
MEAL_COMMUNAL
MEAL_NATIONAL
CHARGE_PROJET
BAILLEUR
ADMIN

4. Lacunes du schéma — Champs manquants

Champ Type suggéré Utilité
niveauCadreLogique enum EFFET \| RESULTAT \| REALISATION Distingue le type d'indicateur dans la chaîne de résultats
activiteRef String? Code de l'activité parente (ex: A1.1.2)
sourceVerification String? Source documentaire standard (ex: Rapports d'activités)

5. Niveaux du cadre logique — Définitions

EFFET (Impact)

Changement structurel à long terme dans la société, au-delà du projet lui-même. Mesurable seulement à la fin ou après le projet. Exemple ESM : IE1 — Baromètre de cohésion sociale

RESULTAT (Outcome)

Changement observable et durable produit par l'ensemble des activités du projet. Mesure si les bénéficiaires ont changé de comportement, de situation ou de capacité. Exemples ESM : IR1.1.1 — 80% des membres des communautés ayant une connaissance accrue des droits des enfants, IR1.2.1 — 70% des maîtres coraniques enregistrés officiellement

REALISATION (Output)

Ce que le projet a produit concrètement par ses activités — les livrables tangibles et dénombrables immédiatement après une activité. La REALISATION ne mesure pas le changement : elle comptabilise ce qui a été fait. Elle répond à "combien ?", "est-ce fait ?".

Exemples ESM : - 1.1.2.1 — Nombre de supports de communication conçus (on peut compter : 200 boîtes, 500 affiches) - 1.1.3.2 — Nombre d'émissions réalisées (on peut compter : 324) - 2.1.2.1 — Nombre de maîtres coraniques formés (on peut compter : 150) - 3.1.4.3 — Nombre d'enfants ayant obtenu une micro-subvention

Différence clé avec RESULTAT : 324 émissions réalisées (REALISATION) n'implique pas que les communautés ont changé de comportement (RESULTAT). Les deux sont nécessaires pour piloter le projet.


6. Les 31 indicateurs à insérer en seed

Niveau EFFET (1)

Code Libellé Cible Unité
IE1 Baromètre de cohésion sociale ND Score

Niveau RESULTAT — OS1 (4)

Code Libellé resultatRef Cible Unité
IR1.1.1 Proportion des membres des communautés déclarant avoir une connaissance accrue sur les instruments juridiques relatifs aux droits des enfants et à la loi contre la mendicité OS1 80% %
IR1.2.1 Pourcentage de maîtres coraniques enregistrés officiellement auprès des autorités compétentes OS1 70% %
IR1.2.2 Pourcentage de maîtres coraniques ayant reçu une formation sur la réglementation et les normes encadrant leurs pratiques OS1 90% %
IR1.3.1 Pourcentage des enfants en situation de mendicité installés et exerçant le métier OS1 90% %

Niveau RESULTAT — OS2 (4)

Code Libellé resultatRef Cible Unité
IR2.1.1 Nombre de comités villageois de veille établis et actifs OS2 ND Nombre
IR2.1.2 Nombre de cas d'enfants mendiants orientés OS2 ND Nombre
IR2.2.1 Qualité de collaboration entre les parties prenantes sur le phénomène de la mendicité des enfants OS2 ND Score
IR2.2.2 Nombre des décisions prises lors des réunions et effectivement mis en application OS2 ND Nombre

Niveau REALISATION — Résultat R1.1 (7)

Code Libellé resultatRef Cible Unité
1.1.1.1 Rapport d'étude diagnostique finalisé et validé incluant une cartographie des zones d'intervention, une analyse des facteurs spécifiques de mendicité et une analyse genre R1.1 Rapport Document
1.1.1.2 Base de données sur la cible R1.1 Base de données Document
1.1.2.1 Nombre de supports de communication (boîtes à images, affiches, roll-up, banderoles) conçus, traduits en langues locales et mis à disposition R1.1 200 boîtes + 500 affiches + 4 roll-up Nombre
1.1.2.2 Nombre d'éducateurs pairs formés à l'utilisation de ces boîtes R1.1 150 Nombre
1.1.3.1 Nombre d'affiches posées dans les communautés diffusant des informations sur les droits et devoirs de l'enfant et sur les instruments juridiques R1.1 ND Nombre
1.1.3.2 Nombre d'émissions réalisées R1.1 324 Nombre
1.1.3.3 Nombre de sensibilisations communautaires pour un changement de comportement R1.1 600 Nombre

Niveau REALISATION — Résultat R2.1 (6)

Code Libellé resultatRef Cible Unité
2.1.1.1 Nombre d'acteurs communaux et institutionnels renforcés sur la réglementation encadrant la pratique d'accueil des ESM R2.1 100 Nombre
2.1.1.2 Taux de participation des acteurs formés dans les activités de sensibilisation ultérieures dans la zone d'intervention R2.1 70% %
2.1.2.1 Nombre de maîtres coraniques formés sur la lutte contre la mendicité des enfants R2.1 150 Nombre
2.1.2.2 Proportion de maîtres coraniques engagés comme acteurs communautaires dans la lutte contre la mendicité des enfants R2.1 80% %
2.1.3.1 Nombre de leaders religieux et maîtres coraniques sensibilisés par les pairs sur les droits et devoirs des enfants et la loi contre la mendicité R2.1 600 Nombre
2.1.3.2 Pourcentage de participants démontrant une compréhension des droits fondamentaux des enfants et des instruments juridiques après les sensibilisations R2.1 80% %

Niveau REALISATION — Résultat R3.1 (8)

Code Libellé resultatRef Cible Unité
3.1.1.1 Pourcentage d'enfants de 15 à 17 ans identifiés et enregistrés dans le cadre du projet, disposant d'un dossier individuel complet R3.1 100% %
3.1.1.2 Nombre de sessions de groupe de parole/espaces de discussions créés R3.1 216 Nombre
3.1.1.3 Nombre de sessions animées par le parlement des jeunes R3.1 45 Nombre
3.1.1.4 Nombre de participants aux différentes sessions R3.1 150 Nombre
3.1.3.1 Pourcentage d'enfants ayant bénéficié d'une prise en charge holistique (appui alimentaire, soutien psychologique, prise en charge sanitaire, alphabétisation fonctionnelle) R3.1 150 (alimentaire + alphabétisation) Nombre/%
3.1.4.1 Nombre d'enfants inscrits en formation professionnelle R3.1 ND Nombre
3.1.4.2 Nombre d'enfants accompagnés pour le montage de leur plan d'affaire R3.1 ND Nombre
3.1.4.3 Nombre d'enfants ayant obtenu une micro-subvention pour les activités génératrices de revenu R3.1 150 Nombre
3.1.4.4 Nombre d'enfants installés après l'obtention de leur CQM R3.1 150 Nombre

Niveau REALISATION — Résultat R1.2 (5)

Code Libellé resultatRef Cible Unité
1.2.1.1 Nombre de comités villageois créés ou dynamisés R1.2 30 Nombre
1.2.1.2 Taux de participation des membres aux réunions des comités R1.2 90% %
1.2.1.3 Nombre de membres des comités villageois formés R1.2 600 Nombre
1.2.2.1 Nombre de sensibilisations communautaires réalisées R1.2 360 Nombre
1.2.2.3 Nombre d'activités de cohésion sociale identifiées et réalisées R1.2 120 Nombre

Niveau REALISATION — Résultat R2.2 (4)

Code Libellé resultatRef Cible Unité
2.2.1.1 Taux de participation des membres aux réunions du comité de pilotage R2.2 90% %
2.2.2.1 Taux de participation des membres du cadre de concertation communale R2.2 90% %
2.2.2.2 Nombre de comités techniques créés et fonctionnels R2.2 3 Nombre
2.2.3.1 Taux de participation des acteurs du cadre de concertation interdépartementale R2.2 90% %

7. Plan d'implémentation — Option C retenue

Étape 1 — Séparation permission backend

  • Créer INDICATEUR_CREER dans seed et dans Permission
  • Modifier route POST /api/v1/pilotage/indicateurs et PUT /api/v1/pilotage/indicateurs/:id → permission INDICATEUR_CREER
  • Mettre à jour la matrice RBAC dans seed.ts

Étape 2 — Enrichissement schema Prisma

enum NiveauCadreLogique {
  EFFET
  RESULTAT
  REALISATION
}

model IndicateurSuivi {
  // ... champs existants ...
  niveauCadreLogique   NiveauCadreLogique @default(REALISATION)
  activiteRef          String?            // ex: "A1.1.2"
  sourceVerification   String?            // ex: "Rapports d'activités, Photos"
}
- Exécuter npx prisma db push

Étape 3 — Mise à jour DTOs + Use Cases

  • DonneesCreerIndicateur : ajouter niveauCadreLogique, activiteRef, sourceVerification
  • IndicateurSuiviDTO : idem
  • IndicateurSuivi entity : idem
  • IndicateurSuiviRepositoryPrisma : inclure nouveaux champs dans select/create/update

Étape 4 — Frontend

  • Formulaire modal : ajouter select niveauCadreLogique + champs activiteRef et sourceVerification
  • Tableau : colonne niveau (badge couleur EFFET/RESULTAT/REALISATION)
  • Filtres : par niveau

Étape 5 — Seed indicateurs

  • Insérer les 31 indicateurs dans seed.ts via prisma.indicateurSuivi.upsert
  • Idempotent (upsert sur code)