Where's My Money? e una web app personale per tracciare le spese quotidiane in modo semplice, privato e locale.
L'app nasce per essere veloce da usare, soprattutto da smartphone Android: si apre, si scrive una spesa in linguaggio naturale, e il dato resta nel browser dell'utente. Non richiede backend, account o servizi esterni per salvare le spese.
- Local-first e privata: i dati sono salvati in
localStorage, senza server applicativo. - Semplice da mantenere: HTML, CSS e JavaScript vanilla, con deploy statico.
- Mobile-first pragmatico: Android e uso quotidiano personale sono la priorita; iOS e browser desktop vanno mantenuti dignitosi senza complicare troppo il progetto.
- Backup esplicito: l'app supporta import/export JSON e CSV; ogni modifica ai dati deve rispettare questa possibilita.
- Aggiornamenti controllati: l'app installabile/offline resta su una versione scelta e si aggiorna solo su richiesta esplicita dell'utente.
- Refactor senza overengineering: il progetto resta personale, quindi le astrazioni devono servire davvero.
L'app e gia utilizzabile per l'uso quotidiano e include:
- inserimento rapido delle spese tramite parser testuale;
- categorie e metodi di pagamento predefiniti;
- tag, note e modifica delle spese;
- filtri per ricerca, periodo, importo, categoria e metodo;
- timeline con riepilogo giornaliero/settimanale/mensile e selezione multipla;
- statistiche con grafici Chart.js;
- import/export JSON e CSV, copia negli appunti e cancellazione bulk per le spese selezionate dalla timeline;
- tema chiaro/scuro/automatico;
- manifest web app per installazione base;
- baseline PWA/offline con Chart.js locale, release versionata e aggiornamenti scelti dall'utente.
La baseline PWA/offline e completata e pubblicata su main: Chart.js e incluso localmente, le release versionate sotto releases/ registrano service worker con scope limitato alla singola release, /stable/ registra un launcher offline scoped e le impostazioni mostrano una finestra versioni alimentata da releases.json. La release consigliata corrente e releases/v2026.07.14/; / e /dev/ non registrano service worker.
.
+-- README.md
+-- AGENTS.md
+-- releases.json
+-- releases/
| +-- v2026.05.30/
| +-- v2026.06.03/
| +-- v2026.06.12/
| +-- v2026.07.14/
+-- docs/
| +-- CODE_REVIEW.md
| +-- CURRENT_STATE.md
| +-- DEPLOYMENT_STRATEGY.md
| +-- DEVELOPMENT_GUIDE.md
| +-- PWA_OFFLINE_STRATEGY.md
| +-- PRIVACY_REVIEW.md
| +-- REFACTORING_SUMMARY.md
| +-- ROADMAP.md
+-- note/
| +-- note_di_progetto.txt
+-- tests/
| +-- run-tests.js
+-- app/
+-- index.html
+-- manifest.json
+-- css/style.css
+-- vendor/ # librerie terze locali necessarie all'offline
+-- js/
+-- core/ # boot, stato, config, refresh e wiring applicativo
+-- data/ # localStorage e cache spese
+-- domain/ # parser, categorie, filtri, statistiche e azioni pure
+-- input/ # barra inserimento e submit rapido
+-- filters/ # pannello filtri
+-- timeline/ # rendering e controller timeline
+-- stats/ # rendering, grafici e controller statistiche
+-- modal/ # modifica spesa e workaround mobile
+-- navigation/ # pagine, stack UI e back button
+-- settings/ # impostazioni, import/export e info app
+-- ui/ # conferme, toast, tema, download e helper UI
File documentali ufficiali:
- Note per agenti: memoria operativa per Codex e altri assistenti.
- Stato corrente: cosa e implementato oggi e come funziona.
- Review tecnica: problemi, rischi e priorita del refactor.
- Strategia stabile/dev: come separare versione stabile e versione di test.
- Guida sviluppo: regole pratiche per refactor e nuove feature.
- Strategia PWA/offline: piano per offline, service worker, release versionate e aggiornamenti scelti dall'utente.
- Review privacy: mappa tecnica dei dati locali, rete, export, service worker e rischi residui.
- Riepilogo refactor: cosa e stato fatto finora e cosa e rimasto fuori dalla fase conclusa.
- Roadmap: backlog ordinato a partire dagli appunti.
- Appunti raw: fonte grezza e storica delle idee.
Questa lista deve restare completa: se nasce un nuovo documento, va aggiunto qui e in AGENTS.md.
L'app non richiede build. Si puo aprire direttamente app/index.html oppure servire la cartella con un server statico.
Esempio:
cd app
python -m http.server 8000Poi aprire http://localhost:8000.
Test leggeri disponibili:
node tests/run-tests.jsIl runner copre i moduli principali estratti durante il refactor: storage, parser, filtri, statistiche, query/cache, refresh, controller UI, modale, impostazioni, conferme, tema, toast, stack UI/history e wiring applicativo.
Il progetto e pensato per GitHub Pages: la repository pubblica target e tracker-spese, mentre la cartella app/ contiene tutti gli asset necessari per il deploy statico.
Durante il refactor, il deploy previsto separa stabile e sviluppo:
/e/stable/: versione stabile damain;/dev/: versione di sviluppo dal branch aggregatoredev, con storage locale separato.
I branch di fase, per esempio privacy, restano dedicati al lavoro corrente. Quando una modifica va provata su Android, viene portata su dev; quando una versione testata e pronta per l'uso quotidiano, puo essere promossa con un merge intenzionale verso main. Il workflow GitHub Pages parte da main e pubblica sia la stabile sia la dev.
Prima di modificare la logica dei dati, leggere docs/CURRENT_STATE.md e docs/DEVELOPMENT_GUIDE.md.