JoeLedger
Análisis de gastos personales sobre trece años de datos reales: no otro registro de gastos, sino una herramienta para comparar categorías año a año.
El problema
Desde 2013 apunto mis gastos en una app de Android: más de catorce mil movimientos. Pero la app solo muestra el saldo y el mes en curso: no deja ver cómo se ha movido una categoría a lo largo de los años, ni comparar este año con el mismo periodo de años anteriores.
La copia de seguridad de la app está cifrada en un formato cerrado, y la única salida era una exportación CSV. De ahí nació una herramienta que importa, normaliza y compara.
Cómo funciona
Estructura
Cuentas, categorías, subcategorías y movimientos en tablas propias dentro de JoeCMS. Tres vistas: un resumen, la lista de movimientos y la página de comparación, que es el corazón del proyecto.
Flujo de uso
Se exporta el CSV desde la app y se sube. El importador sincroniza: actualiza las filas cambiadas, añade las nuevas y quita las que han desaparecido en el periodo del archivo. Después se elige una categoría o subcategoría y se compara año a año, por semana, mes o año.
Decisiones técnicas
Importaciones repetibles sin duplicados gracias a una huella por movimiento, todo dentro de una transacción que se puede deshacer. Las reglas sobre los datos están escritas: personas y lugares siguen siendo categorías, cuando categoría y subcategoría están invertidas gana la principal, los importes positivos en la cuenta de gastos cuentan como ingresos.
Límites conocidos
Está en fase de diseño: el importador y las páginas existen, el nuevo aspecto está aprobado pero aún no está en las plantillas, y la importación del archivo completo debe validarse antes de publicarlo.
Números
| Movimientos desde 2013 | 14.373 |
|---|---|
| Años de datos | 13 |
| Categorías principales | 82 |
| Subcategorías | 1.278 |
| Cuentas | 4 |
Stack
- PHP 8
- MySQL
- JoeCMS
- Chart.js