Aller au contenu principal

API Dashboard

L'API Dashboard fournit les statistiques et indicateurs pour le tableau de bord principal.

Vue d'ensemble

EndpointMéthodeDescription
/api/dashboard/statsGETStatistiques globales
/api/dashboard/recent-activityGETActivité récente
/api/dashboard/payments-chartGETDonnées graphique paiements
/api/dashboard/regions-distributionGETDistribution par région
/api/dashboard/complaints-overviewGETAperçu des plaintes

Authentification

Tous les endpoints nécessitent ROLE_USER minimum. Les données retournées sont filtrées selon les régions affectées à l'utilisateur.


Statistiques globales

Endpoint

GET /api/dashboard/stats

Paramètres de requête

ParamètreTypeRequisDescription
regionUUIDNonFiltrer par région
programmeUUIDNonFiltrer par programme
dateDebutdateNonDate de début période
dateFindateNonDate de fin période

Réponse

{
"success": true,
"data": {
"menages": {
"total": 3500,
"nouveaux": 150,
"variation": 4.5
},
"beneficiaires": {
"total": 3500,
"actifs": 3450,
"variation": 2.1
},
"paiements": {
"totalMontant": 87500000,
"nombrePaiements": 3500,
"tauxReussite": 98.5,
"variation": 1.2
},
"plaintes": {
"total": 245,
"ouvertes": 45,
"resolues": 200,
"delaiMoyenResolution": 3.5
},
"budget": {
"alloue": 100000000,
"depense": 87500000,
"tauxExecution": 87.5
}
}
}

Activité récente

Endpoint

GET /api/dashboard/recent-activity

Paramètres

ParamètreTypeRequisDescription
limitintNonNombre d'éléments (défaut: 10, max: 50)
typestringNonType d'activité: menage, paiement, plainte

Réponse

{
"success": true,
"data": [
{
"type": "paiement",
"action": "execute",
"description": "Paiement de 25,000 XOF à Mamadou Diallo",
"user": "John Doe",
"timestamp": "2025-03-15T10:30:00+00:00",
"metadata": {
"beneficiaire": "Mamadou Diallo",
"montant": 25000
}
},
{
"type": "menage",
"action": "create",
"description": "Nouveau ménage MEN-OIO-001 créé",
"user": "Jane Smith",
"timestamp": "2025-03-15T09:15:00+00:00"
}
]
}

Données graphique paiements

Endpoint

GET /api/dashboard/payments-chart

Paramètres

ParamètreTypeRequisDescription
periodestringNonweek, month, quarter, year (défaut: month)
regionUUIDNonFiltrer par région

Réponse

{
"success": true,
"data": {
"labels": ["Jan", "Fév", "Mar", "Avr", "Mai"],
"datasets": [
{
"label": "Montant payé",
"data": [15000000, 18500000, 22000000, 25000000, 87500000]
},
{
"label": "Nombre de paiements",
"data": [600, 740, 880, 1000, 3500]
}
],
"summary": {
"totalMontant": 168000000,
"totalPaiements": 6720,
"moyenneMensuelle": 33600000
}
}
}

Distribution par région

Endpoint

GET /api/dashboard/regions-distribution

Réponse

{
"success": true,
"data": [
{
"region": "Oio",
"menages": 1800,
"beneficiaires": 1800,
"montantPaye": 45000000,
"pourcentage": 51.4
},
{
"region": "Bafatá",
"menages": 1700,
"beneficiaires": 1700,
"montantPaye": 42500000,
"pourcentage": 48.6
}
]
}

Aperçu des plaintes

Endpoint

GET /api/dashboard/complaints-overview

Réponse

{
"success": true,
"data": {
"parStatut": {
"nouvelle": 15,
"en_cours": 30,
"resolue": 180,
"fermee": 20
},
"parCategorie": {
"paiement": 120,
"eligibilite": 45,
"donnees": 35,
"autre": 45
},
"parPriorite": {
"urgente": 10,
"haute": 25,
"moyenne": 150,
"basse": 60
},
"slaMetrics": {
"respecte": 220,
"depasse": 25,
"tauxRespect": 89.8
}
}
}