Proiectul propune o soluție critică de siguranță destinată familiilor și grupurilor restrânse. Acesta combină performanța unui backend nativ (C/C++ pe Linux) cu accesibilitatea unei interfețe web moderne. Sistemul asigură monitorizarea locației în timp real, vizualizarea pe hartă și notificări instantanee în caz de pericol sau la părăsirea/intrarea în zone de siguranță.
- Arhitectură Hibridă: Implementarea unei arhitecturi hibride Client-Server cu suport simultan pentru clienți IoT/Desktop și clienți Web.
- Geofencing: Sistem pentru detectarea automată a prezenței în zone de interes (ex: Universitate, Mall, Gară).
- Family Groups: Asigurarea comunicării restrânse între membrii familiei prin conceptul de "Family Groups".
- Alerte SOS: La declanșarea unui SOS, serverul marchează utilizatorul cu roșu, iar ceilalți membri primesc alerta instantaneu.
- Monitorizare în Timp Real: Interfața web descarcă harta, iar periodic (polling la 1.5s) cere datele pentru a actualiza marker-ele pe hartă.
- Limbaj: C++ (Standard C++14/17) pentru logica centrală, gestionarea memoriei și viteza de execuție.
- Networking: Linux Socket API (
sys/socket.h,netinet/in.h). - Concurență: Utilizează
epollpentru gestionarea conexiunilor TCP șistd::threadcuMutexpentru serverul HTTP și protejarea accesului la date.
- Tehnologii de bază: HTML5 pentru structură, CSS3 pentru stilizare și animații, și JavaScript (ES6+) pentru logica asincronă.
- Hărți: Leaflet.js & OpenStreetMap pentru randarea hărților interactive și plasarea markerelor geografice.
- TCP/IP: Protocolul de transport principal pentru fiabilitate.
- HTTP/1.1: Implementat minimal în C++ pentru a servi interfața web și API-ul REST.
- JSON: Utilizat pentru serializarea stării utilizatorilor și a zonelor.
Format: COMANDĂ PARAMETRI\n
CONN user pass: Autentificare.JOIN family_name: Asociere la un grup.LOCA lat lng: Raportare poziție.ALERT type msg: Declanșare SOS.
GET /: Returnează interfața grafică HTML/JS.GET /cmd?req=...: Tunneling pentru comenzi text, permițând browserului să execute comenzi TCP.GET /data: Returnează un array JSON cu toți utilizatorii, locațiile lor și statusul de alertă.GET /zones: Returnează geometria zonelor sigure pentru desenarea pe hartă.
- WebSockets: Înlocuirea polling-ului HTTP pentru a elimina latența de 1.5 secunde.
- Bază de Date: Persistența utilizatorilor și a istoricului locațiilor într-o bază de date SQL (ex: SQLite).
- Criptare: Implementarea SSL/TLS (HTTPS) pentru protejarea parolelor și a datelor de locație.