== Implementation Următorii pași vor ghida implementarea aplicației de dispecerat video, conform arhitecturii specificate. Fiecare componentă va fi implementată în mod modular, asigurând extensibilitatea și scalabilitatea necesară pentru monitorizarea unui număr mare de camere pe baza permisiunilor clienților și locațiilor. === 1. Configurarea Bazei de Date (PostgreSQL) 1.1. Creați schema de baze de date cu tabelele `clienti`, `locatii`, `nvr`, `camere`, `alarme`, `dispeceri`, `dispeceri_clienti`, și `inregistrari_video`, conform structurii definite în secțiunea Method. 1.2. Configurați cheile externe și indexurile pentru interogări rapide, mai ales pentru relațiile între clienți, locații, camere, și alarme. 1.3. Implementați proceduri de securitate, cum ar fi criptarea parolelor dispecerilor și configurarea controalelor de acces pentru a securiza datele sensibile. === 2. Dezvoltarea Serverului de Alarme (PHP) 2.1. Creați un API RESTful în PHP pentru gestionarea alarmelor și interacțiunea cu baza de date. - Implementați endpoint-uri pentru primirea alarmelor, autentificarea dispecerilor, și gestionarea notificărilor în timp real. 2.2. Integrați un serviciu de WebSocket pentru a transmite notificările de alarmă în timp real către dispeceri. 2.3. Implementați logica de permisiuni, folosind `dispeceri_clienti` și `locatii`, pentru a asigura că fiecare dispecer are acces doar la camerele și alarmele permise. === 3. Configurarea Serverului de Streaming Video 3.1. Configurați serverul de streaming (Wowza, WebRTC sau RTSP) pentru a activa fluxuri video la cerere, doar pentru camerele care trimit alarme. 3.2. Configurați serverul să permită stocarea temporară a fluxurilor video (5-10 minute) utilizând FFmpeg sau funcții dedicate de înregistrare. 3.3. Realizați integrarea serverului de streaming cu API-ul PHP, astfel încât fluxurile să fie activate și dezactivate automat la primirea alarmelor. === 4. Dezvoltarea Frontend-ului (React) 4.1. Construiți interfața de dispecerat în React, cu un dashboard pentru vizualizarea alarmelor active, a camerelor și a locațiilor asociate. 4.2. Implementați un mecanism de autentificare și autorizare pentru dispeceri, care să filtreze camerele și alarmele în funcție de clienți și locații. 4.3. Integrați WebSockets pentru notificări în timp real, asigurând afișarea imediată a alarmelor active în interfața dispeceratului. 4.4. Adăugați componente pentru redarea fluxurilor video live și accesarea înregistrărilor video stocate temporar, în funcție de permisiunile dispecerilor. === 5. Implementarea Siguranței și a Mentenanței 5.1. Configurați proceduri de securitate pentru protecția fluxurilor video și a datelor din aplicație, inclusiv SSL pentru API-uri și măsuri de autentificare avansată. 5.2. Implementați joburi automate pentru ștergerea înregistrărilor video care au expirat și pentru mentenanța generală a datelor din sistem. 5.3. Monitorizați performanța și utilizarea resurselor serverului de streaming și a bazei de date pentru a optimiza consumul pe termen lung. ------------------------------------------------------------------------------------------------------------- == Milestones Implementarea aplicației va fi împărțită în etape distincte, fiecare având obiective clare și rezultate măsurabile. Aceasta va permite monitorizarea progresului și ajustarea pe parcurs, dacă este necesar. === Milestone 1: Configurarea Bazei de Date și Infrastructurii - Crearea bazei de date PostgreSQL cu toate tabelele necesare (`clienti`, `locatii`, `nvr`, `camere`, `alarme`, `dispeceri`, `dispeceri_clienti`, și `inregistrari_video`). - Implementarea relațiilor și indexurilor pentru optimizarea interogărilor. - Finalizarea configurării de securitate a bazei de date. === Milestone 2: Dezvoltarea Serverului de Alarme (PHP) - Crearea API-ului pentru gestionarea alarmelor, autentificarea dispecerilor și gestionarea permisiunilor. - Implementarea notificărilor în timp real prin WebSocket pentru a asigura actualizările automate în dashboard-ul dispeceratului. - Testarea accesului diferențiat pe baza permisiunilor și a structurilor clienți-locații. === Milestone 3: Configurarea Serverului de Streaming Video - Configurarea serverului de streaming pentru activarea fluxurilor video la cerere, doar pentru camerele cu alarme active. - Implementarea funcționalității de stocare temporară a fluxurilor video (5-10 minute) pentru alarme. - Integrarea serverului de streaming cu API-ul PHP pentru control automat al fluxurilor video. === Milestone 4: Dezvoltarea Interfeței de Dispecerat (React) - Crearea dashboard-ului pentru dispeceri în React, cu vizualizarea alarmelor, camerelor și locațiilor clientului. - Integrarea autentificării și a notificărilor în timp real. - Implementarea redării fluxurilor video live și a accesului la înregistrările stocate temporar. === Milestone 5: Testare și Optimizare a Performanței - Realizarea testelor funcționale și de încărcare pentru a asigura răspunsul corect al aplicației la un număr mare de alarme și utilizatori simultan. - Optimizarea accesului la date și performanța serverului de streaming, inclusiv testarea securității fluxurilor video. - Finalizarea procedurilor de curățare automată a înregistrărilor temporare și a altor procese de mentenanță. === Milestone 6: Lansarea și Mentenanța Inițială - Lansarea aplicației pentru utilizatorii finali, cu monitorizarea performanței în producție. - Oferirea de suport și mentenanță inițială, asigurând funcționarea corectă a fluxurilor video, notificărilor și permisiunilor. - Pregătirea pentru integrarea viitoare a modulelor de analiză video, în conformitate cu arhitectura extensibilă.