01 / El problema
Treballant per a molts clients alhora, i amb bona part del codi escrit amb ajuda d'IA, saber quant de temps s'ha dedicat realment a cada projecte és difícil: les hores no s'apunten, però els commits hi són.
Facturar a partir d'estimacions fetes a ull, i portar despeses i ingressos en fulls de càlcul separats, feia perdre temps i precisió.
02 / La solució
Una aplicació que llegeix l'activitat dels repositoris, analitza cada commit (fitxers, línies, tipus de canvi i missatge) i n'estima els minuts amb un model calibrat amb l'interval real entre commits.
Cada repositori s'assigna a un client i els commits esdevenen línies de factura, amb la possibilitat de corregir a mà qualsevol estimació; la factura surt en PDF.
S'hi han afegit despeses, proveïdors, altres ingressos i moviments bancaris per tenir tota l'activitat en un sol lloc.
03 / Funcionalitats
- Sincronització de repositoris i commits
- Estimació de temps per commit amb dos models configurables
- Categories de canvi: trivial, petit, mitjà, gran i èpic
- Correccions manuals sobre l'estimació
- Clients, factures i generació en PDF
- Despeses, proveïdors i altres ingressos
- Moviments bancaris
- Tauler amb gràfiques d'activitat per mesos i setmanes
- Importació de dades des d'Excel
04 / Arquitectura
Laravel 13 amb Livewire 4, Tailwind CSS i daisyUI sobre MySQL, amb Chart.js per a les gràfiques.
L'estimador és un servei pur, sense accés a xarxa ni a la base de dades, amb els pesos configurables i una prova automàtica que en garanteix la paritat amb la versió original en Python.
És una reescriptura d'una eina anterior feta amb Python i Flask; les dades es van migrar amb una ordre pròpia.
05 / Resultat
L'activitat de tots els repositoris es converteix en línies de factura sense apuntar hores a mà.
Quan es recalibra el model, els commits ja desats es tornen a estimar sense haver de tornar a consultar les dades d'origen.
06 / Captures