Lucrări reprezentative
Aplicație desktop · Windows

Time Tracker

Aplicație desktop nativă pentru Windows care urmărește automat timpul petrecut pe calculator și pe telefon: productiv, neutru sau neproductiv, pe aplicații, site-uri și proiecte. Totul rulează local, fără cloud.

Windows desktop.NET 8 / C#Win32 API~20k LOC
Partea 1 · Total și Desktop
Partea 2 · Telefon și Analytics

Prezentare generală

Time Tracker e un sistem de 4 procese native .NET 8 care pornesc odată cu Windows și rulează în fundal: un watcher captează la nivel de sistem de operare aplicația și fereastra din prim-plan, un daemon clasifică activitatea și o salvează într-o bază SQLite locală, iar un supervisor din tray le ține în viață. O extensie de browser adaugă site-urile și profilurile, iar un dashboard local adună totul, inclusiv datele de pe telefon. ~20.000 de linii de cod, 7 proiecte .NET, peste 200 de teste automate.

Problema de business

Când lucrezi pe mai multe proiecte deodată, e greu de știut cât timp a mers efectiv pe fiecare și cât s-a pierdut pe aplicații neproductive, iar cronometrele pornite manual se uită. O aplicație web nu poate vedea ce faci pe calculator: pentru măsurare automată pe aplicații, ferestre și site-uri e nevoie de software care rulează în Windows, la nivel de sistem de operare.

Complexitate
UI / UX8/10
Backend9/10
AI2/10
Integrări7/10
Real-time8/10

Arhitectură

  • Watcher nativ: hook-uri Win32 (SetWinEventHook) pe fereastra din prim-plan, identitatea procesului și detecția inactivității, cu verificare de siguranță la fiecare secundă
  • Daemon ASP.NET Core accesibil doar local (127.0.0.1): motor de reguli, atribuire pe proiecte, API de rapoarte și dashboard-ul
  • Bază de date SQLite locală, cu verificare de integritate la pornire și backup zilnic
  • Supervisor în tray care pornește și supraveghează procesele, cu repornire automată și backoff exponențial
  • Pornire odată cu Windows, printr-un task programat cu drepturi de administrator, fără prompt UAC
  • Extensie de browser MV3 (Chrome și Edge) pentru site-uri, tab-uri cu sunet, canale YouTube și profiluri
  • Dashboard React (Vite + TypeScript) servit local, fără cloud

Funcționalități principale

  • Total pe dispozitive: calculator + telefon într-un singur loc
  • Productiv / neutru / neproductiv, după reguli alese de tine
  • Vederi pe zi, săptămână și lună
  • Heatmap pe ore și timeline-ul zilei
  • Timp pe proiecte, atribuit automat
  • Ședințe Zoom, Teams și Meet: timp în apel vs. în alte ferestre
  • Totaluri pe aplicații, site-uri și profiluri de browser
  • Import telefon: capturi Screen Time + un prompt pentru orice AI
  • Analytics pe până la 26 de săptămâni, desktop vs. telefon
  • Focus Score și orele lucrate de Claude Code în fundal
  • Mod Focus din tray, care închide tab-urile neproductive
  • Reclasificare retroactivă: o regulă nouă se aplică pe tot istoricul

Integrări

Windows (Win32 API)Task SchedulerChrome + Edge (extensie MV3)Claude Code (hooks)Zoom · Teams · Google MeetiPhone Screen Time (import prin AI)

Sub capotă

Captură la nivel de Windows

Hook-uri Win32 pe schimbarea ferestrei din prim-plan, identitatea procesului luată din executabil și detecția inactivității (AFK), inclusiv după sleep. Rulează cu drepturi de administrator, ca să vadă și ferestrele aplicațiilor pornite ca administrator.

Procese care se repară singure

Un supervisor pornește și verifică permanent celelalte procese și le repornește cu backoff exponențial, fără să oprească un proces care încă lucrează. Totul pornește odată cu Windows, iar dacă supervisorul cade, procesele lui se închid curat odată cu el.

Date care nu se pierd

Cozi de retry în fiecare componentă, un singur punct de scriere protejat la salturile de ceas, verificare de integritate la pornire și backup zilnic al bazei. Dacă un proces cade, evenimentele așteaptă și se scriu când revine.

100% local, fără cloud

Daemonul ascultă doar pe 127.0.0.1, iar extensia are voie să vorbească doar cu el. Datele stau într-o bază SQLite pe calculator, iar în pauză nu se înregistrează nimic: nici titluri, nici adrese.

Tech stack

Desktop
.NET 8 / C#Win32 APIWinForms (tray)Task Scheduler
Backend local
ASP.NET CoreSQLite (WAL)TOMLxUnit
Interfață
ReactTypeScriptVite
Browser
Extensie MV3ChromeEdge

Rezultat

Dovada că pot construi și software desktop pentru Windows, nu doar aplicații web: procese native care pornesc odată cu sistemul, rulează permanent în fundal, se repornesc singure și își păstrează datele intacte. O folosesc ca să știu exact unde se duce timpul meu.