jBudget è un’applicazione desktop sviluppata in Java con JavaFX che permette la gestione del bilancio familiare.
L’obiettivo è offrire uno strumento semplice ma estensibile per monitorare entrate, uscite, budget e categorie di spesa.
- Gestione movimenti: inserimento, consultazione e filtraggio di entrate/uscite con possibilità di aggiungere uno o più tag.
- Gestione tag: i tag permettono di classificare le spese in categorie gerarchiche (es.
Casa > Utenze). - Gestione budget: configurazione del budget iniziale e visualizzazione di saldo, spese e ricavi filtrati per periodo o categoria.
- Persistenza dati: tutte le informazioni sono salvate in un unico file XML (
data/mybudget.xml). - Interfaccia grafica: realizzata con JavaFX e file
.fxmlmodulari.
Il progetto adotta il pattern Model-View-Controller (MVC), con chiara separazione delle responsabilità:
- model → rappresenta il dominio (Transaction, Tag, Budget, ecc.).
- repository → astrazione per l’accesso ai dati (interfacce + implementazioni XML).
- persistence → parsing e gestione del file XML.
- controller → gestisce l’interazione con l’interfaccia grafica (JavaFX).
- service → servizi di supporto (analisi budget, generatori di transazioni, gestione alert).
- resources/ → file
.fxmldelle interfacce. - data/ → file
mybudget.xmlper la persistenza.
it.unicam.cs.mpgc.jbudget122824
├── model/ # Classi dominio (Transaction, Tag, Budget…)
├── repository/ # Interfacce e repository XML
├── persistence/ # Parser e gestione XML
├── controller/ # Controller JavaFX
├── service/ # Servizi di supporto
├── resources/ # File FXML interfacce grafiche
└── data/ # File XML di persistenza (mybudget.xml)
- Java 17+
- JavaFX per l’interfaccia grafica
- XML per la persistenza dei dati
- Gradle per la build automation
- Clona la repository:
git clone https://github.com/tuonomeutente/jbudget.git cd jbudget - Compila ed esegui con Gradle:
./gradlew run
- Alla prima esecuzione, verrà creato il file
data/mybudget.xmlper la persistenza dei dati.
- Possibilità di aggiungere nuovi tipi di transazioni (es. ricorrenti, abbonamenti, stipendi).
- Supporto a nuovi formati di persistenza (JSON, database relazionali).
- Funzionalità di analisi avanzata del budget (grafici, confronti temporali).
- Interfaccia modulare sostituibile o riutilizzabile in contesti diversi.