Expense Tracker intelligente con CLI + Web Dashboard
- 🖥️ CLI interattiva per inserimento rapido delle spese
- 🤖 Parsing automatico del testo con regex intelligenti
- 📊 Classificazione automatica delle spese per categoria
- 💾 Database SQLite per persistenza dati
- 🌐 API REST con Sinatra
- 📱 Dashboard web moderna e responsive
- 📤 Export in CSV e JSON
- 📈 Report mensili automatici
bundle installbundle installruby bin/ruby_pulseOppure usando Rake:
rake cliLa CLI supporta comandi interattivi:
- Inserisci direttamente una spesa:
"Ho speso 25.50 euro per la spesa" list- Mostra tutte le spesereport- Report mensilecategories- Riepilogo per categoriaexport csv- Esporta in CSVexport json- Esporta in JSONdelete <id>- Elimina una spesaquit- Esci
ruby bin/serverOppure usando Rake:
rake serverPoi apri il browser su http://localhost:4567
Per vedere esempi di utilizzo:
ruby examples.rbOppure:
rake examplesruby-onrails/
├── lib/
│ ├── ruby_pulse/
│ │ ├── expense.rb
│ │ ├── parser.rb
│ │ ├── classifier.rb
│ │ ├── database.rb
│ │ ├── repository.rb
│ │ ├── exporter.rb
│ │ └── report_generator.rb
│ └── ruby_pulse.rb
├── bin/
│ ├── ruby_pulse
│ └── server
├── config/
│ └── database.rb
├── db/
│ └── schema.rb
├── public/
│ └── css/
│ └── style.css
├── views/
│ └── dashboard.erb
└── Gemfile
La CLI accetta input testuali naturali:
- "Ho speso 25.50 euro per la spesa al supermercato"
- "Cena al ristorante: 45€"
- "Netflix subscription 9.99"
- "Benzina 60 euro"
- "Farmacia 12.30"
- "Libro di Ruby 29.99 euro"
- "Bolletta luce 85.50"
Il sistema riconosce automaticamente:
- ✅ Importi in vari formati (25.50, 25,50, €25.50, 25 euro)
- ✅ Date (oggi, ieri, formato DD/MM/YYYY)
- ✅ Categorie (Alimentari, Ristoranti, Trasporti, Intrattenimento, Shopping, Salute, Casa, Educazione)
Il progetto segue principi di OOP pulita e separazione delle responsabilità:
- Expense: Modello di dominio per le spese
- ExpenseParser: Parsing intelligente del testo con regex
- ExpenseClassifier: Classificazione automatica per categoria
- Database: Gestione connessione SQLite (Singleton)
- ExpenseRepository: Pattern Repository per accesso dati
- Exporter: Export in CSV e JSON
- ReportGenerator: Generazione report mensili e statistiche
- Service: Facade principale per l'applicazione
MIT