TrackIt
TrackIt è un'applicazione web e mobile per il monitoraggio passivo delle finanze. A differenza dei software di contabilità complessi, TrackIt si focalizza esclusivamente sulle uscite ricorrenti.
Il Problema
Il modello economico basato sulla sottoscrizione (SaaS) ha generato una frammentazione dei costi fissi. L'utente moderno soffre di "Subscription Fatigue": la difficoltà di monitorare attivamente quando, quanto e perché un servizio preleva denaro dal conto corrente. Il problema si aggrava con i pagamenti rateali (BNPL - Buy Now Pay Later) che, pur non essendo abbonamenti infiniti, erodono la liquidità mensile con la stessa logica ricorsiva. TrackIt nasce per risolvere l'asimmetria informativa tra fornitore e cliente, restituendo a quest'ultimo il controllo totale sul proprio "burn rate".
Descrizione del Progetto
TrackIt è un'applicazione web e mobile per il monitoraggio passivo delle finanze. A differenza dei software di contabilità complessi, TrackIt si focalizza esclusivamente sulle uscite ricorrenti. L'app permette di censire abbonamenti standard, finanziamenti a termine e utenze. La funzione core è il sistema di Early Warning: una notifica preventiva che informa l'utente prima che l'addebito avvenga, dando il tempo di valutare disdette o spostamenti di liquidità. Inoltre, fornisce analisi statistiche sul peso delle diverse categorie di spesa rispetto alle entrate globali.
Architettura e Database
L'architettura segue una logica a servizi (Service-Oriented). La persistenza dei dati è gestita tramite Doctrine ORM, assicurando l'indipendenza dal DBMS scelto. Un punto chiave dell'architettura è la separazione delle responsabilità: - Il modulo Security gestisce l'accesso. - Il modulo Billing gestisce il calcolo delle ricorrenze. - Il modulo Notification gestisce l'invio asincrono tramite code.
Logica di Business
La logica più complessa risiede nel calcolo della Next Renewal Date. Il sistema non si limita ad aggiungere un mese, ma controlla: 1. Se esiste un billing_day: la data viene forzata a quel giorno del mese successivo. Se il mese successivo non ha quel giorno (es. 30 febbraio), viene scalata all'ultimo giorno utile del mese. 2. Se l'abbonamento è a rate: ad ogni aggiornamento della data, il campo processed_installments viene incrementato. Al raggiungimento di total_installments, l'abbonamento viene marcato come Archived e rimosso dai calcoli futuri del burn rate.