Menu

Developers Italia Sviluppiamo i servizi pubblici, insieme

Seguici su

geofleet 0.1

geofleet

VVFGeoFleet is a system allowing to track a fleet, where vehicles are equipped with GPS enabled devices periodically sending their position.

Vitalità:

69%

i

L’indice di vitalità, così come previsto nelle linee guida sull’acquisizione e riuso di software per la PA, è calcolato prendendo in considerazione le seguenti quattro categorie:

  • Code activity: il numero di commit e merge giornalieri;
  • Release history: il numero di release giornaliere;
  • User community: il numero di autori unici;
  • Longevity: l’età del progetto.

I range di ogni misura possono essere trovati nel file vitality-ranges.yml.

Stato di sviluppo: stabile


Funzionalità del software

Web based frontend for public applicants.

Web based backoffice frontend to check, navigate submitted applications.

RESTful backend

Publishes real-time statistics on the system usage.

Corpo Nazionale dei Vigili del Fuoco

Informazioni di dettaglio

geofleet 0.1

geofleet

Ultimo rilascio 2018-05-17 (0.1)

Tipo di manutenzione internal

Documentazione API geofleet API

Descrizione estesa

VVFGeoFleet is a system allowing to track a fleet, where vehicles are equipped with GPS enabled devices periodically sending their position. The system is composed of two main modules: (i) a backend module, based on a RESTful server; (ii) a frontend module, based on an Angular GUI. The backend is written in C# Asp.Net WebApi, using Visual Studio 2017 Community Edition, with a persistence layer based on MongoDB document database. It collects position messages coming from GPS enabled devices installed on board the vehicles; publishes REST actions to efficiently query the collected data. Queries allow, for instance, to: (i) getting the current fleet position (also by vehicle class); (ii) getting a vehicle position; (iii) getting a vehicle tracked path, within a given time interval; (iv) getting vehicles near to a given point (also by vehicle class); (v) getting vehicles within a given rectangle; (vi) getting vehicles inactive since too much time. The backend is optimized to collect data and hold them forever, without the need for purging old data periodically. The RESTful API leverages the MongoDB database and its spatial features. All database queries are carefully optimized to exploit indexes; thus, the response time is extremely low even in case of millions messages stored. The RESTful API enables the frontend to graphically display data, but it is especially conceived to be queried by other applications (B2B) in order to act as a decision support system (DSS). The frontend is based on Angular6 and uses Google maps javascript API to show information. Currently the source code and the RESTful interface is a mix of English and Italian words. During the implementation, the Italian words will be translated as much as possible. VVFGeoFleet can receive keep-alive messages (e.g. every minute or so) from vehicles, in order to promptly know whether a vehicle is out-of-field or the GPS device is faulty. In presence of many vehicles (i.e. more than 10.000) those messages might be heavy to be stored. To cope with this issue, VVFGeoFleet holds only messages carrying position deltas, while interpolating messages received by the same vehicle in the same position. Interpolation information is saved together with the interpolating messages, so to prevent such inforation to get lost. On each position message reception, VVFGeoFleet computes the vehicle velocity comparing the received message with the latest stored one. In case such velocity exceeds a given threshold, a warning is traced in the application log (based on log4net). Too high velocities might be due to bad GPS device configuration of faulty GPS device. The system publishes statistics about message arrival per day, total number of stored messages, messages arrival rate, etc. Statistics can be read to check correct system operation, and can be processed through automated systems in order to raise alarms in case of anomalous indicators. Posting position messages can be subject to client authorization, based on IP source address. The web.config allows to enable/disable IP-based authorization through a flag and to specify the list of allowed IP and/or networks (e.g. 127.0.0.1, 8.8.8.8, 10.0.0.0/24, 172.16.0.0/16).

torna all'inizio dei contenuti