-
Notifications
You must be signed in to change notification settings - Fork 7
Description de la solution technique
Pour les deux applications :
- Le Backend est en Kotlin, basé sur le framework Spring.
- Le Frontend est une simple Single Page Application en React, embarquant OpenLayers pour l'affichage et la gestion des cartes.
On a donc deux Web APIs internes, l'application Web n'étant qu'une simple interface UI comuniquant avec ces deux APIs.
Une bonne partie des éléments UI communs est partagée au sein d'une librairie commune.
Nos données internes sont stockées sur 3 bases de données PosgreSQL :
- Une dédiée à MonitorFish.
- Une liée à MonitorEnv, dont une partie des données sont partagées avec MonitorFish.
- Une dédiée aux données géographiques, intégrant PostGIS, partagée entre les deux applications et manipulée via QGiS.
Des pipelines de données alimentent MonitorFish et MonitorEnv à partir de sources de données de l'Administration :
- Direction Générale des Affaires Maritimes, de la Pêche et de l'Aquaculture : référentiels navires, positions VMS des navires en temps réel
- Ministère de l'Agriculture : journaux de pêche électroniques
En interne aux applications, les pipelines de données assurent la mise à jour de tables contenant des données pré-calculées à partir des données brutes :
- aggrégations de données pour les besoins d'analyse statistique,
- remontées d'alertes et mise à jour d'indicateurs au sein de l'application...
Ces pipelines de données sont pris en charge par des workers python orchestrés par une instance de l'outil open source Prefect qui a été déployée pour les besoins du projet.
Enfin, les deux applications communiquent par API pour échanger certains objets partagés.
Les statistiques, principalement destinées aux acteurs publics, sont aggrégées et consultables via une instance Metabase disponible sur le RIE. Ces statistiques sont alimentées et mises à jour automatiquement par les pipelines Prefect.
Une partie de ces données est également rendue publique sur Data.gouv.fr et via des URL publiques donnant accès à des tableaux de bord Metabase.