Skip to content

Progetto Metodologie di Programmazione - UNICAM A.A. 2024/2025

License

Notifications You must be signed in to change notification settings

Pipperix/jBudget

Repository files navigation

jBudget

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.

✨ Funzionalità principali

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

🏗️ Architettura

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 .fxml delle interfacce.
  • data/ → file mybudget.xml per la persistenza.

📂 Struttura del progetto

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)

🔧 Tecnologie utilizzate

  • Java 17+
  • JavaFX per l’interfaccia grafica
  • XML per la persistenza dei dati
  • Gradle per la build automation

🚀 Avvio del progetto

  1. Clona la repository:
    git clone https://github.com/tuonomeutente/jbudget.git
    cd jbudget
  2. Compila ed esegui con Gradle:
    ./gradlew run
  3. Alla prima esecuzione, verrà creato il file data/mybudget.xml per la persistenza dei dati.

🔮 Estendibilità

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

About

Progetto Metodologie di Programmazione - UNICAM A.A. 2024/2025

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages