Skip to content

Flutter APP that allows parents to view the real-time route of school bus drivers who use the Mika Gps driver application.

Notifications You must be signed in to change notification settings

JErazo7/flutter-traccar-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mika GPS padre!

Aplicación móvil multiplataforma que permite a los padres de familia visualizar el recorrido en tiempo real de los conductores de buses escolares que utilizan la aplicación Mika Gps conductor.

Autenticación en el servidor de Traccar

Para autenticar una sesión en Traccar, la aplicación debe obtener un cookie de sesión. Para obtener dicho cookie, se utiliza el paquete dio para hacer una petición Get al punto final /api/session enviando como parámetro un Token de autenticación generado previamente en Traccar para el usuario correspondiente.

Esta operación se realiza en el método Future<void> _getCookie({String protocol = "http"}) que se encuentra en el archivo client.dart en la ruta lib/src/traccar/client.dart.

Nota: La cookie de sesión se debe pasar en el encabezado de todas las peticiones que se realizan al servidor.

Obtención de la ubicación en tiempo real

Para obtener la ubicación emitida por Mika Gps Conductor, la aplicación escucha a través del paquete web_socket_channel las ubicaciones emitidas por el servidor de Traccar a través del método Future<Stream<dynamic>> _positionsStream( {String serverUrl, String protocol = "http"}) que se encuentra en el archivo client.dart mencionado anteriormente.

Para comunicarse con Traccar, se debe establecer la conexión con el punto final del WebSocket /api/socket de su servidor, el cual emite actualizaciones y eventos de ubicación en vivo. La cookie de sesión es la única opción de autorización para la conexión WebSocket.

Cada mensaje en la comunicación WebSocket usa el mismo formato JSON:

{ 
   "devices": [...],
   "positions: [...], 
   "events": [...]  
}

Cada conjunto contiene modelos estándar correspondientes:

Implementación del mapa y marcador de ubicación

Para implementar el mapa y sus marcadores se utiliza una biblioteca muy interesante llamada FluxMap.

Flux Map es un mapa que permite manejar actualizaciones de ubicación en tiempo real para múltiples dispositivos. El mapa toma una secuencia de objetos de dispositivo para la entrada y administra su estado en el mapa. Esta biblioteca permite manejar la lógica del mapa y su actualización constante.

El resto de bibliotecas que se utilizan son las siguientes:

Toda la logica de implementacion del mapa y sus marcadores se encuentra en el archivo controller.dart en la ruta lib/src/controller.dart.

Nota: Como guía para extender esta aplicación en un desarrollo futuro, consultar el siguiente repositorio, que abarcan un sinnúmero de funcionalidades para manejar mapas en Flutter :

About

Flutter APP that allows parents to view the real-time route of school bus drivers who use the Mika Gps driver application.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published