Stoc Manager
Aplicație PWA multi-rol (Admin, Agent, Vânzător POS) pentru gestiunea stocului unui depozit de materiale de construcții, cu sincronizare live via Laravel Reverb WebSockets și generare QR codes.
Stack principal
Provocarea
Trei interfețe cu fluxuri complet diferite (admin CRUD, agent mobil cu QR scan, POS vânzare) care trebuie să reflecte același stoc în timp real, fără conflicte de concurență la actualizări simultane.
Soluția
Laravel Reverb (WebSockets first-party Laravel) broadcastează evenimentele de stoc pe canale private per depozit. Actualizările de stoc folosesc tranzacții DB cu `lockForUpdate()` pentru a preveni race conditions la vânzări simultane. Fiecare rol are middleware de autorizare separat și layout Inertia dedicat, partajând același backend Laravel fără duplicare de logică.
Complexitate notabilă
Stoc Manager este o aplicație web progresivă (PWA) construită cu Laravel 12 + Inertia.js + Vue 3, destinată gestiunii complete a unui depozit de materiale de construcții. Aplicația are trei interfețe distincte, fiecare adaptată rolului utilizatorului: Admin, Agent de teren și Vânzător POS. **Interfața Admin** oferă vizibilitate completă asupra stocului, comenzilor și utilizatorilor. Adminul poate adăuga/edita produse, seta praguri de alertă stoc minim, gestiona utilizatorii și rolurile, și exporta rapoarte PDF (barryvdh/laravel-dompdf). Dashboard-ul afișează statistici în timp real actualizate prin Laravel Reverb. **Interfața Agent** este optimizată pentru utilizare pe tabletă/mobil în depozit. Agentul scanează QR codes (generate cu endroid/qr-code) pentru identificarea rapidă a produselor, înregistrează intrări/ieșiri de stoc și confirmă comenzile pregătite pentru livrare. **Interfața Vânzător POS** simulează un punct de vânzare simplificat: căutare produs, adăugare în coș, finalizare vânzare cu generare bon. Stocul se actualizează instant la finalizarea vânzării, iar toți utilizatorii conectați văd modificarea în timp real prin Reverb WebSockets (Laravel Echo + Pusher JS client). Autentificarea și gestionarea rolurilor sunt implementate cu Laravel Fortify. Rutele sunt tipizate cu Laravel Wayfinder (@laravel/vite-plugin-wayfinder), eliminând string-urile hardcodate în frontend. Starea reactivă este gestionată cu @vueuse/core și reka-ui pentru componente accesibile.
Rezultate cheie
- Trei UI-uri distincte per rol dintr-o singură aplicație Laravel
- Sincronizare stoc în timp real via Laravel Reverb WebSockets
- QR codes generate server-side pentru identificare rapidă produse
- Generare rapoarte și bonuri PDF cu dompdf
- PWA instalabil pe tablete Android folosite în depozit
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.