GeoPulse Tracker Logo

GeoPulse

Descripció General

GeoPulse Tracker és una aplicació de seguiment GPS desenvolupada amb Flutter que permet als usuaris seguir dispositius, comunicar-se mitjançant missatgeria i rebre actualitzacions de localització i alertes en temps real. L'aplicació ofereix interfícies tant mòbils com web, centrant-se en el seguiment en temps real, comunicació segura i alertes d'emergència.

Tecnologies Utilitzades

Frontend

  • Framework: Flutter (versió SDK ^3.7.2)
  • Components d'UI: Material Design
  • Gestió d'estat: Patró Provider
  • Renderitzat de mapes: MapLibre GL (una biblioteca de renderitzat de mapes de codi obert)
  • Emmagatzematge local: SharedPreferences, SQLite (via sqflite)
  • Autenticació: Implementació personalitzada amb suport biomètric

Backend

  • Servidor: Node.js amb Express
  • Bases de dades: MySQL (dues bases de dades - una per a dades GPS, una per a usuaris)
  • Comunicació en temps real: WebSockets (paquet ws)
  • Notificacions push: Firebase Cloud Messaging (FCM)
  • Comunicació amb dispositius: Protocol MQTT

Funcionalitats Principals

  1. Seguiment GPS en Temps Real

    • Seguiment de múltiples dispositius en un mapa interactiu
    • Visualització de detalls del dispositiu (velocitat, rumb, bateria, temperatura)
    • Capacitats de seguiment històric
    • Estils i configuracions de mapa personalitzats
  2. Sistema de Missatgeria Segura

    • Converses individuals
    • Notificacions push per a nous missatges
    • Persistència de missatges entre sessions
    • Gestió de converses
  3. Sistema d'Emergència SOS

    • Notificacions prioritàries per a situacions d'emergència
    • Compartició de localització durant emergències
    • Alertes a usuaris crítics designats
  4. Autenticació d'Usuaris

    • Autenticació amb nom d'usuari/contrasenya
    • Autenticació biomètrica (empremta digital, ID facial)
    • Gestió de sessions
  5. Capacitats Offline

    • Emmagatzematge en caché per a ús offline
    • Sincronització en segon pla
    • Cua de missatges quan s'està offline

Permisos Requerits

Permisos d'Android

  • Accés a Internet (android.permission.INTERNET)
  • Estat de la xarxa (android.permission.ACCESS_NETWORK_STATE)
  • Servei en primer pla (android.permission.FOREGROUND_SERVICE)
  • Sincronització de dades (android.permission.FOREGROUND_SERVICE_DATA_SYNC)
  • Wake lock (android.permission.WAKE_LOCK)
  • Vibració (android.permission.VIBRATE)
  • Receptor d'inici completat (android.permission.RECEIVE_BOOT_COMPLETED)
  • Publicar notificacions (android.permission.POST_NOTIFICATIONS)
  • Autenticació biomètrica (android.permission.USE_BIOMETRIC)

Permisos d'Execució

Sol·licitats mitjançant permission_handler:

  • Permisos de localització
  • Permisos de notificació
  • Permisos d'emmagatzematge (per a caché i dades offline)

Arquitectura

Arquitectura del Client

  • Pantalles: Components d'interfície organitzats per funcionalitat (mapa, missatgeria, configuració)
  • Serveis: Proveïdors de funcionalitat central (notificacions, API, WebSocket, base de dades)
  • Models: Estructures de dades que representen entitats de l'aplicació
  • Widgets: Components d'UI reutilitzables
  • Utils: Funcions d'ajuda i utilitats

Arquitectura del Servidor

  • Rutes Express: Punts finals d'API per a accés a dades
  • Servidor WebSocket: Canal de comunicació en temps real
  • Client MQTT: Connexió a dispositius IoT
  • Capa de Base de Dades: Persistència i recuperació de dades
  • Integració amb Firebase: Lliurament de notificacions push

Flux de Dades

  1. Els dispositius GPS envien dades via MQTT al servidor
  2. El servidor processa les dades i les emmagatzema a la base de dades MySQL
  3. El servidor envia actualitzacions als clients connectats via WebSockets
  4. L'aplicació mòbil mostra actualitzacions i alertes en temps real
  5. Les interaccions de l'usuari es processen localment o es sincronitzen amb el servidor

Característiques de Seguretat

Biblioteques i Dependències Destacades

Conclusió

L'aplicació proporciona una solució completa de seguiment GPS amb capacitats de missatgeria, dissenyada per al monitoratge en temps real de dispositius amb èmfasi en la seguretat, fiabilitat i experiència d'usuari.