Înapoi la portofoliu
Mobile

Program Lucru

Sistem complet de pontaj și urmărire program de lucru cu backend Express/SQLite, frontend React și aplicație mobilă Expo cu notificări push și QR code scanning.

Stack principal

Node.js
TypeScript
Express
better-sqlite3
sql.js React 19 Tailwind CSS v4 Radix UI TanStack Query Expo React Native NativeWind expo-router web-push exceljs bcrypt JWT Vitest @zxing/browser

Provocarea

Sincronizarea pontajelor între aplicația mobilă (offline-first) și backend a necesitat un mecanism de conflict resolution pentru cazurile în care angajatul pontează offline și sincronizează ulterior. QR code scanning-ul trebuia să funcționeze atât în browser (web) cât și în aplicația nativă cu aceeași logică de business.

Soluția

Pontajele offline sunt stocate în AsyncStorage cu timestamp local și sincronizate la reconectare cu conflict resolution bazat pe timestamp (last-write-wins cu alertă pentru conflicte). QR scanning-ul este abstractizat într-un hook comun — pe web folosește @zxing/browser, pe native folosește expo-camera, cu aceeași interfață pentru logica de business.

Complexitate notabilă

Program Lucru este o aplicație de pontaj și gestiune program de lucru construită ca monorepo cu trei componente: un backend Express/TypeScript cu SQLite (better-sqlite3), un frontend React 19 cu Tailwind v4 și o aplicație mobilă Expo/React Native. Backend-ul folosește better-sqlite3 pentru performanță maximă pe operații sincrone și sql.js pentru portabilitate. Autentificarea este JWT cu bcrypt, iar notificările push sunt gestionate prin web-push (VAPID). Importul programelor de lucru din Excel se face prin exceljs, permițând managerilor să încarce foile de pontaj existente. Frontend-ul React 19 cu Tailwind v4 și shadcn/ui (Radix UI) oferă o interfață pentru manageri — vizualizare calendar cu programele tuturor angajaților, aprobare cereri de concediu, rapoarte ore lucrate și export. Folosește TanStack Query pentru data fetching și Vitest pentru teste. Aplicația mobilă Expo permite angajaților să vadă programul lor, să ponteze intrarea/ieșirea prin QR code scanning (@zxing/browser pe web, expo-camera pe mobile) și să primească notificări push pentru schimbări de program. NativeWind asigură consistența vizuală cu frontend-ul web.

Rezultate cheie

  • Pontaj prin QR code funcțional pe web și mobile
  • Sincronizare offline-first cu conflict resolution
  • Import programe de lucru din Excel
  • Notificări push pentru schimbări de program

Vrei ceva similar?

Începe cu wizard-ul de estimare — răspunzi la câteva întrebări și primești un range de preț + timeline realist.