
Planner: ture, concedii și aprobări într-o singură aplicație web
O aplicație web mobile-first care aduce planificarea turelor, cererile de concediu, aprobările, calendarul de echipă și rapoartele într-un singur sistem.
Echipe care lucrează 24/7 și în program de birou, în paralel, aveau nevoie de un loc unic pentru ture, concedii și aprobări. Planner calculează costul real al fiecărei zile libere în funcție de tură, urmează organigrama la aprobare și arată în timp real cine lucrează, cine lipsește și unde sunt goluri de acoperire.
Turele se planificau în foi Excel, iar concediile se urmăreau separat. Într-o echipă 24/7, o zi liberă se măsoară după tură: contează dacă persoana avea program în acea zi, inclusiv în weekend sau de sărbătoare. Același interval, de la vineri până luni, poate consuma 4 zile sau 2, în funcție de grafic.
Aprobările depind de cine raportează cui, cine conduce echipa și cine preia atunci când aprobatorul lipsește. Fără o regulă clară, cererile ajung la persoana greșită sau rămân fără răspuns.
La nivel de operațiuni, golurile de acoperire se descopereau târziu, iar la sfârșit de lună contabilitatea aștepta un rezumat curat cu zilele lucrate, concediile și orele de noapte și de weekend.
Am modelat regulile reale ca cod testat. Motoarele de calcul pentru zile de concediu, solduri, aprobatori și acoperire sunt funcții pure, acoperite de teste automate, iar stratul de date doar încarcă și salvează rezultatele. Calculul poate număra zilele după grafic sau după zilele lucrătoare, per echipă, cu jumătăți de zi, sărbători legale per țară și report de concediu cu dată de expirare.
Aplicația este construită pe Next.js 16 cu React 19 și TypeScript strict, cu PostgreSQL 16 și Prisma. Acțiunile pe server validează datele cu Zod, verifică permisiunile și abia apoi scriu într-o singură tranzacție modificarea, notificarea, emailul din coada de trimitere și intrarea din jurnalul de audit. Concurența este controlată cu blocări per persoană și per echipă și cu verificare de versiune la publicarea turelor, astfel încât modificările simultane rămân în siguranță.
Fiecare ecran este proiectat întâi pentru telefon, la 390 px, cu bară de navigare jos, panouri care urcă de jos și agende pe zi, iar pe desktop apar planificatorul de ture și calendarul pe lună. Aplicația rulează pe un server Ubuntu în AWS, în spatele unui proxy Apache, supravegheată de systemd, cu copii de siguranță nocturne și un script de lansare care face backup înainte de fiecare versiune.
- 1
Descoperire
Am cartografiat turele reale (zi, seară, noapte, program EU și US, on-call), tipurile de concediu, lanțul de aprobare și formulele din foile Excel existente.
- 2
Modelarea regulilor
Calculul zilelor, soldurile, aprobatorii și acoperirea au devenit funcții pure cu teste, separate de interfață și de baza de date.
- 3
Construit pentru telefon
Fiecare ecran are o variantă gândită pentru mobil: agendă pe zi, panouri de jos, selector de tipuri cu solduri. Desktopul adaugă planificatorul și calendarul pe lună.
- 4
Import și lansare
Import din Excel cu rulare de probă, invitații prin email, notificări în aplicație și pe email, mesaje în Microsoft Teams și abonament de calendar pentru Outlook, Google și Apple.
- 5
Operare
Copii de siguranță nocturne gestionate din aplicație, jurnal de audit, verificare de sănătate și lansări controlate pe server.
- Concediu calculat după turăîntr-o echipă 24/7 o zi costă doar dacă persoana avea tură, inclusiv în weekend și de sărbători; echipele de birou numără zilele lucrătoare minus sărbătorile legale. Formularul arată costul în timp real, cu defalcare pe zile
- Cardul „În tură acum”pagina de start arată tura curentă sau următoarea cu numărătoare inversă, soldul de concediu, acțiuni rapide și următoarele 7 zile
- Aprobări care urmează organigramapersoana căreia i se raportează, liderii echipei, apoi manageri; înlocuitori când aprobatorul lipsește, aprobare în masă, ajustarea zilelor cu notă în jurnal și insigne de suprapunere care arată cine mai lipsește
- Calendar de echipăpe desktop un tablou pe lună cu bare pe tipuri și zile aprobate sau în așteptare, pe mobil o grilă lunară cu agendă pe zi; colegii apar ca „Indisponibil” când tipul de concediu este privat; vizualizări pe 4, 6 și 12 luni
- Planificator de turemodificări pregătite local și publicate o singură dată, verificare de versiune, pensulă și comenzi de la tastatură, rânduri de acoperire care devin roșii sub minim, ore și ore de noapte per persoană, conflicte cu concediul, tipare repetabile și planificare pe până la 12 luni
- Schimburi de turăschimburi și predări între colegi cu acord din partea colegului și a liderului, plus reguli de disponibilitate care apar direct în grilă
- Vizualizare de echitatenopți, weekenduri și sărbători lucrate per persoană, cu semne pentru valori peste sau sub media echipei
- Solduriper tip de concediu, cu report, expirare și închidere de an cu previzualizare, calcul proporțional în primul an și jumătăți de zi
- Raportare de boalăîntr-o atingere, aprobată automat și cu liderul informat; documente justificative încărcate sigur și cereri de concediu generate în PDF
- Ore suplimentarecu aprobare, plătite sau compensate cu timp liber, cu sold de zile libere compensatorii
- Notificări și integrăriîn aplicație și pe email printr-o coadă cu reîncercări, mesaje în Microsoft Teams și rezumat zilnic „cine lipsește azi”, plus abonament de calendar (.ics) pentru Outlook, Google și Apple
- Rapoarte și exporturifoaie de pontaj gata de tipărit, solduri, concedii luate, ore suplimentare cu prime și capacitate pe echipă
- Rezumat pentru salarizarefuncție secundară cu zile lucrate, concedii și ore de noapte și de weekend, corectabile și previzualizate înainte de trimiterea către contabilitate, cu identificatori sensibili stocați criptat
- Securitate și operareparole cu argon2id, sesiuni în baza de date cu deconectare reală, blocare după încercări eșuate, politică CSP, jurnal de audit și copii de siguranță nocturne
- roluri, fiecare cu reguli proprii de vizibilitate și aprobare
- 0
- tipuri de concediu preconfigurate, inclusiv concedii legale
- 0
- rapoarte exportabile în Excel și CSV: concedii, solduri, pontaj, ore suplimentare și capacitate
- 0
- fișiere de teste automate pentru reguli și permisiuni
- 0
- secțiuni de setări pentru administratori: politici, ture, email, Teams, salarizare, backup și altele
- 0







