Gestore Spese

Una web app per tenere insieme le finanze di casa: importa gli estratti conto di più banche, categorizza le spese e le attribuisce a persone e conti.

Perché

In casa abbiamo più conti e più persone, e non volevo un'app commerciale che leggesse i nostri movimenti. Ho costruito qualcosa che gira sul mio server, con i dati nel mio database.

Dashboard con entrate e uscite per mese e spese per categoria (dati inventati)
La dashboard con entrate e uscite per mese e spese per categoria. I dati sono inventati.

Cosa fa

  • Legge i formati reali di tre banche (Trade Republic, BBVA, Intesa Sanpaolo) e scarta i duplicati anche quando due importazioni si sovrappongono.
  • Assegna le categorie con regole apprese dalle correzioni: le regole sul testo contano più del codice di categoria dell'esercente, perché alcuni esercenti ne dichiarano uno sbagliato.
  • Riconosce i trasferimenti tra i propri conti (stessa persona, stesso importo, entro 10 minuti, oppure 3 giorni se manca l'ora) e li esclude dalle spese.
  • Calcola il fondo di investimento dal file esportato dalla banca e ne controlla i saldi.
  • Produce un'analisi con Claude Code in locale, senza chiave API, e la salva in una tabella.

Scelte tecniche

Tutto gira in Docker Compose con Supabase (Postgres, autenticazione, API e funzioni) e un front-end in Vue 3, con nove migrazioni SQL. Per l'analisi AI un processo sul server prende i lavori dal database invece di esporre una porta, e verifica i dati che riceve. L'accesso passa solo da Cloudflare Access. Ci sono i backup, l'interfaccia per telefono e il tema scuro.

Cosa ho fatto io

L'ho scritto da solo in circa quaranta commit tra giugno e luglio 2026; la prima versione è nata in un giorno e poi l'ho rifinita. Una parte del lavoro l'hanno fatta sessioni di Claude Code. Le immagini qui sopra mostrano dati inventati, non i nostri.

Limiti

Non ci sono test automatici significativi. Lo uso in famiglia, ma è un progetto privato: il repository non è pubblico e non c'è una demo.

  • Stack

    Vue 3 · TypeScript · Vite · Pinia · Tailwind · Chart.js · Supabase e Postgres · Deno · Docker · nginx

  • Il mio ruolo

    Progetto personale: progettazione e sviluppo.