Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

358 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Where's My Money?

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.

Principi

  • 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.

Stato Attuale

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.

Struttura

.
+-- 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

Documentazione

File documentali ufficiali:

Questa lista deve restare completa: se nasce un nuovo documento, va aggiunto qui e in AGENTS.md.

Sviluppo Locale

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 8000

Poi aprire http://localhost:8000.

Test leggeri disponibili:

node tests/run-tests.js

Il 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.

Deploy

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 da main;
  • /dev/: versione di sviluppo dal branch aggregatore dev, 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.

About

Una web app personale per tracciare le spese quotidiane in modo semplice, privato e locale.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages