JoeLedger
L'analyse des dépenses personnelles sur treize ans de données réelles : pas une énième application de suivi, mais un outil pour comparer les catégories d'une année sur l'autre.
Le problème
Depuis 2013, je note mes dépenses dans une application Android : plus de quatorze mille opérations. Mais l'application n'affiche que le solde et le mois en cours : elle ne permet pas de voir comment une catégorie a évolué au fil des ans, ni de comparer l'année en cours avec la même période des années précédentes.
La sauvegarde de l'application est chiffrée dans un format fermé, et la seule issue était un export CSV. C'est de là qu'est né un outil qui importe, normalise et compare.
Comment ça marche
Structure
Comptes, catégories, sous-catégories et opérations dans des tables propres à l'intérieur de JoeCMS. Trois vues : une synthèse, la liste des opérations et la page de comparaison, qui est le cœur du projet.
Parcours d'usage
On exporte le CSV depuis l'application et on le charge. L'importateur synchronise : il met à jour les lignes modifiées, ajoute les nouvelles et supprime celles qui ont disparu sur la période du fichier. On choisit ensuite une catégorie ou une sous-catégorie et on la compare d'une année sur l'autre, par semaine, mois ou année.
Choix techniques
Des imports répétables sans doublons grâce à une empreinte par opération, le tout dans une transaction annulable. Les règles sur les données sont écrites : personnes et lieux restent des catégories, quand catégorie et sous-catégorie sont inversées la principale l'emporte, les montants positifs sur le compte de dépenses comptent comme des recettes.
Limites connues
Il est en phase de conception : l'importateur et les pages existent, la nouvelle apparence est validée mais pas encore reportée dans les gabarits, et l'import du fichier complet doit être vérifié avant la mise en ligne.
Chiffres
| Opérations depuis 2013 | 14 373 |
|---|---|
| Années de données | 13 |
| Catégories principales | 82 |
| Sous-catégories | 1 278 |
| Comptes | 4 |
Stack
- PHP 8
- MySQL
- JoeCMS
- Chart.js