feat: nouvelle page Rapports/Cartes — dashboard KPI + sparklines + top movers #97
Labels
No labels
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
status:needs-fix
status:ready
status:review
status:triage
type:bug
type:feature
type:infra
type:refactor
type:schema
type:security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/Simpl-Resultat#97
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Contexte
Suite à l'analyse d'#96, la refonte du rapport Compare ne suffit pas à couvrir le besoin de vision financière comparable globale. Cette issue introduit une nouvelle page
/reports/cartesdans le hub Rapports — un tableau de bord riche axé KPI + visualisations comparables, inspiré des dashboards financiers modernes (YNAB, Monarch).Peut être développée en parallèle d'#96 : seuls
reportService.tset les fichiers i18n se chevauchent, conflits mineurs.Objectif
Donner à l'utilisateur une vue d'ensemble de son mois de référence avec toutes les comparaisons pertinentes (MoM + YoY simultanées), en un seul écran.
Contenu de la page
1. Sélecteur de mois
useReportsPeriod(query string?to=YYYY-MM-DD)2. KPI cards (4 cartes)
Chaque carte affiche :
Cartes :
amount > 0)|amount| sur amount < 0)3. Bar chart dual 12 mois
4. Top mouvements du mois (2 colonnes)
/reports/category?cat=X5. Carte "vs Budget"
N/M catégories dans la cible)6. Carte "Saisonnalité"
Fichiers à créer
src/pages/ReportsCartesPage.tsxsrc/components/reports/cards/KpiCard.tsxsrc/components/reports/cards/KpiSparkline.tsxsrc/components/reports/cards/IncomeExpenseOverlayChart.tsxsrc/components/reports/cards/TopMoversList.tsxsrc/components/reports/cards/BudgetAdherenceCard.tsxsrc/components/reports/cards/SeasonalityCard.tsxsrc/hooks/useCartes.tsFichiers à modifier
src/services/reportService.ts— ajoutergetCartesSnapshot(referenceMonth)qui retourne en un seul appel : KPI actuels, MoM, YoY, sparkline 13 mois, top movers, budget adherence, saisonnalitésrc/App.tsx— route/reports/cartessrc/pages/ReportsPage.tsx— nouvelle card hub pour Cartessrc/i18n/locales/{fr,en}.json— clésreports.cartes.*CHANGELOG.md+CHANGELOG.fr.md— entrée## [Unreleased]docs/architecture.md— ajout page Cartes + hook/servicedocs/adr/0007-reports-hub-refactor.md— mise à jour ou nouveau ADR 0008 si la structure hub diverge significativementCritères d'acceptation
/reports/cartesaccessible depuis le hub Rapports/reports/categorygetCartesSnapshot()remonte toutes les données de la pagegetCartesSnapshot: wrap-around janvier, données < 13 mois, taux d'épargne divisé par zéro, saisonnalité sans historiqueComplexité estimée
Complex — 7+ nouveaux composants, 1 hook, 1 service agrégé avec snapshot temporel multi-périodes, plusieurs nouvelles visualisations.
Dépendances
Aucune dépendance bloquante avec #96. Peut démarrer immédiatement en parallèle.