Pular para o conteúdo principal

Rapports d'Activites

Cette page documente la gestion des rapports d'activites des Community Workers.


Vue d'ensemble​

Les rapports d'activite permettent aux Community Workers de documenter leurs interventions sur le terrain. Chaque rapport est soumis pour validation par un superviseur.


Modele de donnees (CWRapportActivite)​

ChampTypeDescription
idUUIDIdentifiant unique
communityWorkerobjectCW concerne
typeActivitestringType d'activite
dateActivitedateDate de l'activite
quantitestringQuantite/Nombre (contextuel)
nbBeneficiairesHommesintNombre de beneficiaires hommes
nbBeneficiairesFemmesintNombre de beneficiaires femmes
nbBeneficiairesTotalintTotal beneficiaires (calcule)
observationstextNotes et observations
piecesJointesarrayListe des fichiers joints
localiteobjectLocalite de l'activite
sourcestringSource de la donnee
koboSubmissionIdstringID soumission KoBoToolbox
statutstringStatut du rapport
valideParobjectUtilisateur qui a valide
dateValidationdatetimeDate de validation
motifRejettextMotif en cas de rejet
createdAtdatetimeDate de creation

Types d'activites​

TypeDescription
enregistrement_menagesEnregistrement de nouveaux menages
sensibilisationSessions de sensibilisation communautaire
verificationVerification des conditionnalites
collecte_grmCollecte de plaintes (GRM)
suivi_vulnerablesSuivi des menages vulnerables

Statuts de rapport​

StatutDescription
en_attenteRapport soumis, en attente de validation
valideRapport valide par le superviseur
rejeteRapport rejete (motif obligatoire)

Sources de donnees​

SourceDescription
webSaisi via l'interface web
mobileSaisi via l'application mobile
koboCollecte via KoBoToolbox

Endpoints API​

EndpointMethodeDescription
/api/cw-rapportsGETListe paginée (page, limit ; filtres search, statut, typeActivite, communityWorker, localite, dateDebut, dateFin)
/api/cw-rapportsPOSTCreer un rapport
/api/cw-rapports/{id}GETDetail d'un rapport
/api/cw-rapports/{id}DELETESupprimer un rapport en brouillon ou en attente
/api/cw-rapports/en-attenteGETRapports en attente de validation (limit, 50 par défaut)
/api/cw-rapports/statsGETStatistiques globales
/api/cw-rapports/{id}/validerPOSTValider un rapport
/api/cw-rapports/{id}/rejeterPOSTRejeter un rapport
/api/community-workers/{id}/activitesGETRapports d'un CW

Il n'existe pas de route de modification d'un rapport. Valider ou rejeter un rapport qui n'est pas en attente renvoie 400.


Liste des rapports d'un CW​

Endpoint​

GET /api/community-workers/{id}/activites

Parametres​

ParametreTypeRequisDescription
limitintNonNombre de rapports (defaut: 20)

Reponse​

{
"success": true,
"data": {
"rapports": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"typeActivite": "sensibilisation",
"dateActivite": "2026-06-10",
"quantite": "1 session",
"nbBeneficiaires": 45,
"localite": "Farim Centro",
"statut": "valide",
"createdAt": "2026-06-10T16:30:00+00:00"
},
{
"id": "...",
"typeActivite": "enregistrement_menages",
"dateActivite": "2026-06-08",
"quantite": "12 menages",
"nbBeneficiaires": 12,
"localite": "Farim Centro",
"statut": "en_attente",
"createdAt": "2026-06-08T14:00:00+00:00"
}
],
"stats": {
"total": 45,
"valides": 40,
"enAttente": 3,
"rejetes": 2,
"tauxValidation": 88.9,
"parType": {
"enregistrement_menages": 15,
"sensibilisation": 20,
"verification": 5,
"collecte_grm": 3,
"suivi_vulnerables": 2
}
}
}
}

Creer un rapport d'activite​

Endpoint​

POST /api/cw-rapports

Corps de la requete​

{
"communityWorkerId": "550e8400-e29b-41d4-a716-446655440000",
"typeActivite": "sensibilisation",
"dateActivite": "2026-06-10",
"quantite": "1 session",
"nbBeneficiairesHommes": 15,
"nbBeneficiairesFemmes": 30,
"observations": "Session sur l'importance de la scolarisation des filles. Bonne participation de la communaute.",
"localiteId": "...",
"piecesJointes": ["photos/session_2026-06-10.jpg"]
}

Reponse (201 Created)​

{
"success": true,
"data": {
"id": "...",
"typeActivite": "sensibilisation",
"dateActivite": "2026-06-10",
"nbBeneficiairesTotal": 45,
"statut": "en_attente",
"source": "web"
},
"message": "Rapport créé avec succès"
}

Valider un rapport​

Endpoint​

POST /api/cw-rapports/{id}/valider

Reponse​

{
"success": true,
"message": "Rapport valide",
"data": {
"id": "...",
"statut": "valide",
"validePar": {
"id": "...",
"nom": "Superviseur Regional"
},
"dateValidation": "2026-06-11T09:15:00+00:00"
}
}

Rejeter un rapport​

Endpoint​

POST /api/cw-rapports/{id}/rejeter

Corps de la requete​

{
"motif": "Nombre de beneficiaires incoherent avec les photos jointes"
}

Reponse​

{
"success": true,
"message": "Rapport rejete",
"data": {
"id": "...",
"statut": "rejete",
"motifRejet": "Nombre de beneficiaires incoherent avec les photos jointes",
"dateValidation": "2026-06-11T09:20:00+00:00"
}
}

Workflow de validation​

┌──────────────┐ ┌─────────┐
│ Soumission │ -------> │ Valide │
│ (en_attente) │ └─────────┘
└──────────────┘
│
│ (motif requis)
▼
┌──────────────┐
│ Rejete │
└──────────────┘

Integration KoBoToolbox​

Les rapports d'activite peuvent etre collectes via KoBoToolbox sur le terrain :

  1. Le CW remplit le formulaire sur tablette/telephone
  2. Les donnees sont synchronisees avec le serveur KoBo
  3. Un webhook declenche l'import dans PCH-SIG
  4. Le rapport est cree avec source: "kobo" et le koboSubmissionId

Identificateur KoBo​

Le champ koboSubmissionId permet de :

  • Eviter les doublons lors de la synchronisation
  • Tracer l'origine de la donnee
  • Faciliter la reconciliation en cas de probleme