Skip to content

bmbianca/Family_Locator_and_Safety_Network

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Family Locator and Safety Network

Descriere

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ță.

Funcționalități Principale

  • 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ă.

Stack Tehnologic

Backend (Server-Side)

  • 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ă epoll pentru gestionarea conexiunilor TCP și std::thread cu Mutex pentru serverul HTTP și protejarea accesului la date.

Frontend (Client-Side)

  • 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.

Protocoale de Comunicație

  • 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.

Protocolul de Comunicație API

Protocol TCP (Custom Text-Based)

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.

API HTTP (REST-like)

  • 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ă.

Îmbunătățiri Viitoare

  • 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors