# A.8 — Validation des données ODK

Chapitre A.8 du Manuel PIGBF

# A.8.8.1 — Comprendre le circuit de validation ODK

## 8.1 Comprendre le circuit de validation ODK

La **validation des données ODK** est l'une des responsabilités les plus importantes et les plus critiques de l'Administrateur Plateforme. Elle constitue le **verrou de qualité systématique** entre les données brutes collectées sur le terrain et la base de production de la PIGBF.

**Principe fondamental :** Aucune donnée collectée sur le terrain ne peut entrer directement en production. Elle transite systématiquement par une **zone de staging** (base de données intermédiaire) où un administrateur humain doit l'examiner, la contrôler et l'approuver avant son intégration définitive. Ce mécanisme garantit :  
\- L'**intégrité** de la base de données (pas de pollution par des données de test ou de mauvaise qualité)  
\- La **traçabilité** (chaque donnée intégrée est liée à un administrateur validateur et à un horodatage)  
\- La **qualité** (une erreur de saisie de terrain détectée avant intégration est beaucoup plus simple à corriger)  
\- La **sécurité** (prévention de l'injection frauduleuse de données)

### Flux complet de la collecte à la production

```
TERRAIN
Enquêteur (tablette ODK Collect)
  → Saisit le formulaire (en ligne ou hors ligne)
  → Synchronise vers ODK Central dès connexion disponible
        ↓
SYNCHRONISATION AUTOMATIQUE
api-pigbf (scheduler toutes les X minutes)
  → Récupère les nouvelles soumissions depuis ODK Central
  → Les stocke dans la base de staging (mysql_api)
        ↓
STAGING / ZONE D'ATTENTE
Administrateur Plateforme (interface Données Collectées)
  → Consulte les fiches en attente
  → Vérifie la cohérence, la qualité, la légitimité
  → Décide : Transférer (valider) ou laisser en attente
        ↓
PRODUCTION
Base de données principale (mysql)
  → École créée ou mise à jour dans le module Écoles
  → Élève créée ou mise à jour dans le module Bénéficiaires
  → Tuteur créé ou mis à jour dans le module Tuteurs
  → Données exploitables pour les paiements et les rapports

```

`<callout class="info">📸 <strong>Capture d'écran à insérer :</strong> Schéma illustrant le flux de validation ODK : 4 étapes visuelles avec icônes (Terrain → ODK Central → Zone staging → Production), avec les acteurs et délais indicatifs à chaque étape</callout>`

`<callout class="info">📸 <strong>Capture d'écran à insérer :</strong> Menu latéral section "Validation des données collectées" déroulée : sous-menus "Données écoles", "Données élèves", "Données tuteurs" visibles, avec les badges numériques rouges indiquant le nombre de fiches en attente sur chaque sous-menu</callout>`

Les données en attente sont regroupées dans trois sous-modules accessibles depuis le menu latéral : **Données Collectées → Données écoles**, **Données élèves**, **Données tuteurs**.

---

# A.8.8.2 — Validation des données écoles

## 8.2 Validation des données écoles

Les formulaires ODK relatifs aux écoles regroupent plusieurs types de collecte : identification initiale d'un établissement, mise à jour du numéro SECOPE, mise à jour de l'arrêté ministériel, renseignement des frais scolaires, renseignement des classes et options disponibles.

### Accéder à la page

Menu latéral → **Données Collectées → Données écoles**.

`<callout class="info">📸 <strong>Capture d'écran à insérer :</strong> Page Données écoles complète : onglets "Non validé" (sélectionné, en bleu) et "Validé" (gris) en haut à gauche ; boutons "Validation par UIDs", "Exporter en Excel", "▼ Filtrer" en haut à droite ; sélecteur "10 écoles par page" ; tableau principal ; barre de recherche à droite</callout>`

`<callout class="info">📸 <strong>Capture d'écran à insérer :</strong> Tableau des données écoles non validées : colonnes Enquêteur (code), École (nom), Province/PROVED/Sous-PROVED (trois lignes empilées), Num. SECOPE (badge vert ou orange "Non disponible"), Arrêté Min. (référence + date de signature + nb pages), PV Réunion (nb pages ou "Non disponible"), Tranches (montant 1ère tranche estimé), Actions (icône paramètres + coche validation)</callout>`

### Deux onglets de navigation

**Onglet "Non validé"** (vue par défaut) : affiche uniquement les formulaires ODK non encore traités, en attente de validation par un administrateur. C'est la vue de travail quotidienne.

**Onglet "Validé"** : affiche les formulaires déjà traités et transférés en base de production. Utile pour retrouver l'historique d'une validation spécifique, vérifier qu'une école donnée a bien été traitée, ou consulter les données avant transfert.

### Filtrer les données en attente

Avant de valider, il est recommandé de filtrer les données par zone géographique ou par enquêteur pour traiter les soumissions de manière organisée et cohérente.

`<callout class="info">📸 <strong>Capture d'écran à insérer :</strong> Panneau de filtres ouvert sur la page Données écoles : liste déroulante PROVED (avec "Tous les PROVED" par défaut), liste déroulante Sous-PROVED (cascade, se remplit selon PROVED), liste déroulante Enquêteur (avec le code de chaque enquêteur), bouton "Réinitialiser les filtres"</callout>`

1. Cliquez sur le bouton **▼ Filtrer** en haut à droite du tableau.
2. Sélectionnez un ou plusieurs filtres combinables :  
     - **PROVED** : province éducationnelle  
     - **Sous-PROVED** : se remplit automatiquement selon le PROVED choisi  
     - **Enquêteur** : code de l'enquêteur dont vous souhaitez traiter les soumissions
3. Les résultats du tableau se mettent à jour instantanément.
4. Cliquez sur **Réinitialiser les filtres** pour revenir à la liste complète.

### Consulter le détail d'une soumission avant validation

Avant de valider, il est **fortement recommandé** de consulter le détail complet de la soumission via l'icône de détail (bouton paramètres) pour les premières validations ou en cas de doute.

`<callout class="info">📸 <strong>Capture d'écran à insérer :</strong> Vue détaillée d'une soumission ODK école : toutes les informations collectées affichées (nom, SECOPE, localisation GPS, photos de l'arrêté ministériel et du PV, montants des frais scolaires, informations sur le préfet), statut "Non validée", bouton "Valider ce formulaire" visible</callout>`

Le détail affiche l'intégralité des données saisies par l'enquêteur, y compris les photos prises sur le terrain (arrêté ministériel, PV de réunion). Cela permet à l'administrateur de vérifier la lisibilité des documents photographiés et la cohérence des informations déclarées.

### Valider une école individuellement

1. Sur la ligne de l'école à valider, cliquez sur le bouton **Valider** (icône coche verte dans la colonne Actions).
2. Une fenêtre de confirmation s'affiche rappelant le nom de l'école et les informations principales.
3. Confirmez la validation. La soumission est transférée : l'école est créée (si nouvelle) ou mise à jour (si existante) dans le module Écoles de la base de production.

`<callout class="info">📸 <strong>Capture d'écran à insérer :</strong> Fenêtre de confirmation de validation individuelle d'une école : récapitulatif (nom de l'école, PROVED, Sous-PROVED, SECOPE), boutons "Annuler" et "Confirmer la validation"</callout>`

### Valider plusieurs écoles en bloc (validation groupée)

1. Cochez les cases à gauche de chaque ligne à valider. La case en en-tête du tableau **coche/décoche toutes les lignes visibles** de la page en une seule action.
2. Un bandeau récapitulatif apparaît au-dessus ou en bas du tableau : « **X école(s) sélectionnée(s)** ».
3. Cliquez sur le bouton **Valider les X école(s) sélectionnée(s)** qui apparaît.
4. Une fenêtre de confirmation récapitule le nombre d'écoles et les montants estimés.
5. Confirmez. Les transferts sont effectués en masse vers la base de production.

`<callout class="info">📸 <strong>Capture d'écran à insérer :</strong> Tableau avec plusieurs cases cochées (4 écoles) : cases à cocher visibles et cochées à gauche de chaque ligne, bandeau "4 écoles sélectionnées" en haut avec bouton "Valider les 4 écoles sélectionnées" actif et bouton "Vider la sélection"</callout>`

### Validation par liste d'UIDs (import)

Lorsqu'un responsable de terrain ou un superviseur ONG fournit une liste précise des identifiants formulaires à valider, utilisez cette fonction pour un traitement ciblé et documenté.

1. Cliquez sur le bouton **Validation par UIDs** en haut du tableau.
2. Une fenêtre modale s'ouvre avec deux options :  
     - **Saisie manuelle** : entrez les UIDs manuellement dans la zone de texte, un identifiant par ligne  
     - **Import fichier** : importez un fichier texte (.txt) contenant les UIDs, un par ligne
3. Le système identifie automatiquement les formulaires correspondant aux UIDs fournis et les sélectionne.
4. Cliquez sur **Valider la sélection**.

`<callout class="info">📸 <strong>Capture d'écran à insérer :</strong> Fenêtre modale "Validation par UIDs" : zone de texte multiligne pour saisie manuelle des UIDs, bouton "Importer un fichier .txt", liste des UIDs reconnus affichée avec statut, boutons Annuler et Valider la sélection</callout>`

### Exporter les données en Excel

Cliquez sur **Exporter en Excel** pour générer un fichier Excel des données actuellement filtrées dans le tableau. Le fichier sera envoyé à l'adresse email de l'utilisateur connecté dès qu'il sera prêt (quelques secondes à quelques minutes selon le volume).

`<callout class="info">📸 <strong>Capture d'écran à insérer :</strong> Message de confirmation après clic sur "Exporter en Excel" : "Votre export est en cours de génération. Vous recevrez un email avec le lien de téléchargement dans quelques instants."</callout>`

---

# A.8.8.3 — Validation des données élèves

## 8.3 Validation des données élèves

### Accéder à la page

Menu latéral → **Données Collectées → Données élèves**.

`<callout class="info">📸 <strong>Capture d'écran à insérer :</strong> Page Données élèves complète : onglets Non validé / Validé, boutons Validation par UIDs / Exporter en Excel / Filtrer, tableau avec colonnes Enquêteur, Nom de l'élève, École, Classe, Option, Notes S1 (Période 1, Période 2, Examen, Moyenne), Régularité S1, ID formulaire ODK, Actions</callout>`

### Structure du tableau et informations affichées

Chaque ligne correspond à une soumission ODK d'identification ou de mise à jour d'une bénéficiaire. Les colonnes affichent :  
\- **Enquêteur** : code de l'enquêteur ayant soumis le formulaire  
\- **Nom de l'élève** : identité collectée sur le terrain  
\- **École / Classe / Option** : parcours scolaire déclaré  
\- **Notes S1** : moyennes par période et taux de présence du premier semestre (si collectés)  
\- **Notes S2** : idem pour le second semestre (si collectés)  
\- **ID formulaire ODK** : identifiant unique de la soumission dans ODK Central

### Filtres disponibles

`<callout class="info">📸 <strong>Capture d'écran à insérer :</strong> Panneau de filtres des données élèves : listes déroulantes PROVED, Sous-PROVED, École, Classe, Option, Enquêteur ; bouton Réinitialiser les filtres</callout>`

<table id="bkmrk-filtre-description-p"><thead><tr><th>Filtre</th><th>Description</th></tr></thead><tbody><tr><td>**PROVED**</td><td>Province éducationnelle</td></tr><tr><td>**Sous-PROVED**</td><td>Cascade selon PROVED</td></tr><tr><td>**École**</td><td>Filtrer par établissement spécifique</td></tr><tr><td>**Classe**</td><td>Filtrer par niveau scolaire</td></tr><tr><td>**Option**</td><td>Filtrer par option de classe</td></tr><tr><td>**Enquêteur**</td><td>Filtrer par agent terrain</td></tr></tbody></table>

### Consulter le détail d'une fiche élève avant validation

`<callout class="info">📸 <strong>Capture d'écran à insérer :</strong> Vue détaillée d'une soumission ODK élève : photo de l'élève, identité complète (nom, prénom, date et lieu de naissance), statut migratoire, informations familiales, école et classe, notes et présences saisies, statut "Non validée", boutons Valider et bouton Retour</callout>`

Avant de valider une fiche, consultez le détail pour vérifier :  
\- La **photo de l'élève** est bien visible et correspond à une personne réelle  
\- L'**identité** (nom, prénom, date de naissance) est cohérente et sans fautes manifestes  
\- L'**école et la classe** sont correctement renseignées et cohérentes avec la zone de collecte  
\- Les **notes et présences** sont dans des plages réalistes (moyennes entre 0 et 100%)  
\- Si l'élève existe déjà dans la base, vérifiez qu'il s'agit bien d'une **mise à jour légitime** et non d'un doublon accidentel

### Valider des élèves

**Validation individuelle :** Bouton **Valider** (coche verte) sur la ligne → confirmation → l'élève est créée ou mise à jour en base de production.

**Validation en masse :** Cocher plusieurs lignes → bouton **Valider les X élèves sélectionnées** → confirmer.

**Import par UIDs :** Même fonctionnement que pour les écoles.

`<callout class="info">📸 <strong>Capture d'écran à insérer :</strong> Bandeau de sélection multiple avec plusieurs élèves cochées : "53 élèves sélectionnées — Valider les 53 élèves sélectionnées | Vider la sélection"</callout>`

⚠️ **Attention au rapprochement automatique :** Lorsqu'une fiche élève est validée, le système vérifie automatiquement si une bénéficiaire avec le même UID existe déjà en base. Si c'est le cas, il propose une mise à jour de la fiche existante plutôt qu'une création. En cas de doute, vérifiez le détail de la soumission et consultez la fiche existante avant de confirmer.

---

# A.8.8.4 — Validation des données tuteurs

## 8.4 Validation des données tuteurs

### Accéder à la page

Menu latéral → **Données Collectées → Données tuteurs**.

`<callout class="info">📸 <strong>Capture d'écran à insérer :</strong> Page Données tuteurs complète : onglets Non validé / Validé, boutons Validation par UIDs / Exporter en Excel / Filtrer, tableau avec colonnes Enquêteur, Nom du tuteur, Téléphone, École de rattachement, Nombre d'enfants bénéficiaires déclarés, Situation de handicap, Compte de paiement M-Pesa (numéro), Actions</callout>`

### Structure du tableau

<table id="bkmrk-colonne-description-"><thead><tr><th>Colonne</th><th>Description</th></tr></thead><tbody><tr><td>**Enquêteur**</td><td>Code de l'enquêteur ayant collecté le tuteur</td></tr><tr><td>**Nom du tuteur**</td><td>Nom, post-nom et prénom du tuteur identifié</td></tr><tr><td>**Téléphone**</td><td>Numéro de téléphone principal (souvent = numéro M-Pesa)</td></tr><tr><td>**École**</td><td>École de référence (lieu de la collecte)</td></tr><tr><td>**Nb enfants bénéficiaires**</td><td>Nombre d'élèves déclarées sous la responsabilité de ce tuteur dans cette école</td></tr><tr><td>**Handicap**</td><td>Présence ou non d'une situation de handicap déclarée</td></tr><tr><td>**Compte M-Pesa**</td><td>Numéro de téléphone M-Pesa renseigné lors de la collecte</td></tr></tbody></table>

### Vérification critique avant validation d'une fiche tuteur

La validation d'un tuteur est une étape de vérification rigoureuse, car il est le réceptionnaire des fonds. Consultez systématiquement le détail complet avant de valider.

`<callout class="info">📸 <strong>Capture d'écran à insérer :</strong> Vue détaillée d'une soumission ODK tuteur : photo du tuteur bien visible, photo de la carte d'identité lisible, coordonnées complètes, école et élèves déclarées, numéro M-Pesa renseigné, statut "Non validé", boutons Valider et Retour</callout>`

Éléments à contrôler impérativement :  
1\. **Photo du tuteur** : visible, nette, correspond à une personne adulte réelle  
2\. **Photo de la pièce d'identité** : lisible, non tronquée, appartient clairement au tuteur  
3\. **Numéro de téléphone M-Pesa** : renseigné et cohérent (10 chiffres, format local)  
4\. **Élèves rattachées** : le nombre d'élèves déclarées est cohérent avec les données de collecte de l'école  
5\. **Consentement** : la fiche de consentement a été lue et acceptée par le tuteur (étape documentée dans le formulaire ODK)

### Valider des tuteurs

Les procédures de validation individuelle, en masse et par import d'UIDs sont identiques à celles des écoles et des élèves.

`<callout class="info">📸 <strong>Capture d'écran à insérer :</strong> Page données tuteurs avec plusieurs lignes sélectionnées, bandeau de sélection visible, boutons Valider les X tuteurs et Vider la sélection actifs</callout>`

---

# A.8.8.5 — Bonnes pratiques de validation ODK

## 8.5 Bonnes pratiques de validation ODK

La qualité des données de production de la PIGBF dépend entièrement du soin apporté lors de la phase de validation. Voici les recommandations à appliquer systématiquement :

**Valider régulièrement, ne pas laisser s'accumuler.** Idéalement, les validations devraient être traitées quotidiennement pendant les périodes de collecte active. Un arriéré de validations non traitées retarde tous les processus en aval (paiements, rapports) et crée un risque de perte de contexte (difficultés à vérifier des données collectées plusieurs semaines auparavant).

**Vérifier avant de valider en masse.** Pour les premières sessions de collecte avec un nouvel enquêteur ou une nouvelle zone, validez quelques fiches individuellement avec consultation du détail. Une fois la qualité des données confirmée, la validation en masse est acceptable. En cas de doute récurrent sur un enquêteur, signalez-le à l'ONG responsable.

**Ne jamais valider une fiche manifestement incorrecte.** Une fiche avec un nom vide, une photo illisible, un numéro SECOPE manifestement erroné, ou une localisation incohérente (école de Tshikapa rattachée à une Sous-PROVED de Kamonia) doit être laissée en staging et faire l'objet d'une correction par l'enquêteur. Prévenez l'ONG responsable du problème.

**Utiliser la validation par UIDs pour les lots formels.** Lorsqu'une ONG fournit une liste officielle de formulaires à valider (après vérification terrain), utilisez la fonction d'import d'UIDs plutôt que la sélection manuelle pour garantir exactement les formulaires souhaités et créer une trace documentée.

**Documenter les anomalies détectées.** Si vous détectez des données suspectes ou des erreurs récurrentes lors de la validation, notez-les et transmettez-les à l'ONG responsable pour correction à la source (formation de l'enquêteur, corrections terrain). La prévention à la source est plus efficace que la correction en base.

---

---