Cum construiești o aplicație de urmărire a timpului: cronometre, foi de pontaj și rapoarte
O aplicație de urmărire a timpului înregistrează cine a lucrat la ce, cât timp și dacă acel timp poate fi facturat. Ca să construiești una, ai nevoie de clienți și proiecte pe care să urmărești timpul, de un cronometru care supraviețuiește unei file de browser închise, de o modalitate de a adăuga și corecta intrările manual, de o foaie de pontaj săptămânală și de rapoarte care transformă intrările brute în totaluri. Un generator de aplicații cu AI poate produce o primă versiune funcțională dintr-un prompt clar. Deciziile care contează țin de reguli: rotunjire, cine poate edita ce, când se blochează o săptămână și ce înseamnă facturabil.
Decide pentru ce urmărești timpul
Aceeași aplicație arată diferit în funcție de motivul din spatele ei:
- Facturarea clienților. Ore pe client, un tarif per persoană sau proiect și un export curat pentru facturi. Acuratețea și un istoric de audit contează cel mai mult.
- Salarizarea angajaților cu ora. Intrare și ieșire, pauze, reguli pentru ore suplimentare și aprobarea unui manager. Se aplică regulile locale de muncă, așa că verifică ce evidențe ai obligația să păstrezi.
- Înțelegerea unde se duce timpul. Perspective personale sau de echipă, estimări versus realitate. Viteza introducerii contează mai mult decât fluxurile de aprobare.
Alege una drept job-ul principal pentru prima versiune. Un tracker de facturare pentru un freelancer și un ceas de tură pentru un depozit au în comun un cronometru și foarte puțin altceva.
Ce are nevoie aplicația
Date
| Tabel | Câmpuri principale |
|---|---|
| Clienți | Nume, tarif orar implicit, activ da/nu |
| Proiecte | Client, nume, buget în ore (opțional), facturabil implicit da/nu |
| Sarcini sau categorii | Proiect, nume (design, întâlniri, suport) — opțional la început |
| Intrări de timp | Persoană, proiect, sarcină, ora de început, ora de sfârșit, durată, notă, facturabil da/nu, status (ciornă, trimis, aprobat), facturat da/nu |
| Persoane | Nume, e-mail, rol, tarif de cost sau tarif de facturare |
Stochează ora de început și ora de sfârșit la fiecare intrare și derivă durata din ele. Intrările introduse ca „2h 15m” fără ore pot stoca doar durata, dar păstrează o dată.
Pagini
- Cronometru și ziua de azi: un buton mare de pornire și oprire, un selector de proiect și intrările de azi dedesubt.
- Vederea săptămânii: o grilă cu proiectele pe verticală și zilele pe orizontală, unde oamenii scriu direct orele. Mulți le preferă cronometrelor.
- Rapoarte: ore pe client, proiect și persoană pentru un interval de date, cu separarea între facturabil și nefacturabil și export CSV.
- Administrare: gestionarea clienților, proiectelor, persoanelor și tarifelor.
Permisiuni
Notează cine poate face ce înainte să construiești:
- Oamenii văd și editează propriile intrări.
- Managerii văd intrările echipei lor și aprobă săptămânile.
- Doar administratorii schimbă tarifele și, idealmente, doar ei le văd.
- Nimeni nu editează o intrare odată aprobată sau facturată, decât dacă un administrator o redeschide.
Această ultimă regulă face rapoartele demne de încredere. Ghidul nostru despre adăugarea login-ului în aplicația ta acoperă partea de autentificare, iar controlul accesului pe bază de roluri acoperă rolurile.
Decizii și compromisuri
Cronometru, introducere manuală sau ambele
Cronometrele sunt precise când oamenii își amintesc să le pornească, ceea ce nu se întâmplă mereu. Introducerea manuală este rapidă pentru cei care își completează săptămâna vinerea. Majoritatea echipelor au nevoie de ambele, plus de o modalitate de a edita o intrare de cronometru după fapt. Dacă construiești doar una, construiește grila săptămânii; este mai simplă și acoperă cazul în care ai uitat să pornești cronometrul.
Unde trăiește cronometrul care rulează
Un cronometru care numără în browser pierde totul când se închide fila. Salvează ora de start în baza de date în momentul în care cineva apasă start și arată timpul scurs scăzând-o din momentul actual. Cronometrul continuă să ruleze astfel peste reîncărcări, laptopuri și telefoane. Decide dacă o persoană poate rula două cronometre odată. De obicei răspunsul este nu: pornirea unuia nou oprește vechiul.
Rotunjirea
Regulile frecvente sunt rotunjirea fiecărei intrări în sus, la cele mai apropiate 6, 15 sau 30 de minute. Păstrează orele exacte în baza de date și aplică rotunjirea doar în rapoarte și facturi. Arată ambele cifre în rapoarte, ca nimeni să nu fie surprins.
Blocare și aprobări
Fără blocare, orele facturate luna trecută se pot schimba după ce factura a plecat. Un model simplu: oamenii trimit o săptămână, un manager o aprobă, iar intrările aprobate devin doar pentru citire. Dacă facturezi din aplicație, marchează intrările ca facturate, ca să nu fie facturate de două ori.
Fusuri orare și miezul nopții
Stochează orele în UTC și afișează-le în fusul orar al persoanei. Decide ce zi îi aparține unei intrări care rulează de la 23:00 la 01:00. Răspunsul obișnuit este ziua în care a început.
Un prompt de start care funcționează
Construiește o aplicație de urmărire a timpului pentru un studio de design cu șase persoane. Date: clienți (nume, tarif orar), proiecte (client, nume, ore din buget) și intrări de timp (persoană, proiect, început, sfârșit, notă, facturabil da/nu, status ciornă/trimis/aprobat). Pagini: o pagină Azi cu un cronometru de pornire și oprire și un selector de proiect, care salvează ora de start în baza de date, ca cronometrul să supraviețuiască unei reîncărcări; o pagină Săptămână cu proiectele pe rânduri și zilele de luni până duminică pe coloane, unde oamenii pot scrie direct orele; o pagină Rapoarte cu ore pe client, proiect și persoană pentru un interval de date, separate în facturabil și nefacturabil, cu export CSV; și o pagină Administrare pentru clienți, proiecte și persoane. Poate rula un singur cronometru pe persoană. Intrările aprobate nu pot fi editate. Stochează orele în UTC și afișează-le în fusul orar al utilizatorului. Design curat, rapid și ușor de folosit de la tastatură.
Promptul numește tabelele, paginile, comportamentul cronometrului și regula de blocare, lucruri pe care un AI le-ar ghici altfel.
Pași de construire
- Mai întâi proiectele și intrările manuale. Clienți, proiecte, un formular pentru adăugarea unei intrări și o listă. Asigură-te că totalurile se adună.
- Cronometrul. Pornire, oprire, un singur cronometru care rulează pe persoană, ora de start salvată. Testează pornind un cronometru, închizând fila și redeschizând-o.
- Grila săptămânii. Scrierea orelor într-o celulă creează sau actualizează o intrare.
- Login și roluri. Adaugă-le înainte ca oameni reali să folosească aplicația, ca nimeni să nu vadă din greșeală tarifele sau intrările altora.
- Trimitere și aprobare. Trimitere săptămânală, aprobare de către manager, doar pentru citire după aprobare.
- Rapoarte și export. Interval de date, grupare, separarea facturabil, CSV.
- Tarife și legături către facturare, dacă facturezi clienții. Păstrează crearea facturilor într-un pas sau o aplicație separată; vezi cum construiești o aplicație de facturare.
- Testează cazurile limită. O intrare care trece de miezul nopții, o săptămână cu schimbarea orei de vară, două cronometre pornite de pe două dispozitive, editarea unei intrări aprobate.
Greșeli frecvente
- Numărarea timpului doar în browser. Funcționează în demo și pierde ore în uzul real.
- Rotunjirea valorilor stocate. Nu mai poți recupera niciodată ora exactă.
- Lipsa blocării pentru săptămânile aprobate. Rapoartele nu mai corespund facturilor.
- Toată lumea vede tarifele tuturor. Ascunde tarifele după rol din prima zi.
- Prea multe câmpuri obligatorii. Dacă înregistrarea timpului durează mai mult de câteva secunde, oamenii încetează s-o facă, iar datele devin ficțiune. Fă sarcina și nota opționale la început.
- Construirea unui manager de proiecte complet în interiorul trackerului. Păstrează proiectele ca simple etichete. Dacă ai nevoie de sarcini, table și termene, acesta este un instrument de management de proiecte, o construcție separată.
Când un tracker gata făcut este varianta mai bună
Dacă echipa ta are nevoie de un cronometru, o vedere săptămânală și rapoarte, produsele dedicate de urmărire a timpului fac deja asta bine. Vin și cu lucruri care cer muncă reală ca să fie construite: aplicații pentru desktop și telefon, detectarea inactivității, integrări cu calendarul și alte instrumente și memento-uri pentru completarea foilor de pontaj. Pentru salarizarea cu ora, un instrument construit pentru asta va gestiona pauzele, orele suplimentare și evidența mai sigur decât o aplicație personalizată din prima versiune.
Construiește-ți propria aplicație când regulile tale nu se potrivesc, când vrei ca orele să fie legate de date pe care le păstrezi deja (lucrări, comenzi de lucru, retainere, facturi), când prețul per loc pe o echipă mare se adună sau când urmărirea timpului este o parte dintr-un instrument intern mai mare. Ghidul nostru despre construit vs. cumpărat software parcurge compromisul, iar dacă orele tale stau acum într-o foaie de calcul comună, vezi cum transformi o foaie de calcul într-o aplicație.
Cum o construiești cu Mythex
În Mythex descrii trackerul în chat, iar agentul îl construiește într-o previzualizare live. Adaugă o bază de date Postgres dedicată atunci când intrările trebuie salvate și poți cere asta direct sau scrie /database. Cazul de utilizare al instrumentului intern din documentație sugerează să alegi un singur pas dureros pentru prima versiune, ceea ce se potrivește aici: începe cu intrările și grila săptămânii, apoi adaugă cronometrele și aprobările.
Autentificarea pentru echipa ta o adaugi cu propria abordare de autentificare (rețeta pentru login). Conturile Mythex sunt pentru cei care construiesc, nu pentru cei care folosesc aplicația ta. Odată ce fluxul de bază funcționează, /test îl pune pe agent să parcurgă previzualizarea (pornește un cronometru, adaugă o intrare, rulează un raport) și să raporteze ce se strică. Pentru un punct de plecare vizual, răsfoiește șabloanele de aplicații.
Întrebări
Ce funcționalități are nevoie o aplicație de urmărire a timpului?
O listă de clienți și proiecte, un cronometru cu pornire și oprire, o modalitate de a adăuga sau corecta intrările manual, o vedere săptămânală a foii de pontaj și un raport cu orele pe proiect și pe persoană. Aprobările, tarifele facturabile și exporturile vin apoi.
Cum fac ca un cronometru să nu piardă timp când se închide browserul?
Salvează ora de start în baza de date în momentul în care pornește cronometrul și calculează durata curentă din acel moment salvat. Așa, închiderea filei, reîncărcarea paginii sau trecerea pe alt dispozitiv nu pierd nimic.
Ar trebui timpul să fie rotunjit?
Stochează orele exacte de început și de sfârșit și aplică rotunjirea doar în rapoarte și facturi. Așa poți schimba regula de rotunjire mai târziu fără să rescrii istoricul.
Merită să-mi construiesc propriul instrument de urmărire a timpului?
De obicei doar dacă regulile tale sunt neobișnuite sau vrei ca orele să fie legate de alte date pe care le păstrezi deja, cum ar fi lucrările, clienții sau facturile. Pentru cronometre simple și rapoarte, un instrument existent este mai ieftin și mai rapid.