Inspiration

Dans le contexte de la transition écologique, les moyens de transport utilisés par les citoyens on un impact considérable. Nous désirons aider les citoyens à évaluer l'impact de leur choix, sur les émissions de gaz à effet de serre, mais aussi sur leur portefeuille. Avec les données receuillies par notre application, nous désirons aussi apporter une meilleure compréhension des habitudes de déplacement des citoyens aux différents organismes gouvernementaux en charge de l'offre en terme de transport. Nous sommes conscients qu'il y a présentement plusieurs enjeux en terme de transport, tant à Montréal avec les fermetures de tunel, qu'à Québec avec les projets de tramway et de troisième lien.

C'est pourquoi nous participons au défi: "Aider les citoyens à se déplacer de façon durable."

Ce que fait notre application

Notre application permet aux citoyens de comparer les différentes options disponibles pour se rendre au travail. En entrant les coordonées d'origine et de destination, le citoyen peut comparer le temps et les kilomètres parcourus pour se rendre au traval avec divers moyens de transport (automobile, autobus, vélo, marche). Les citoyens qui se déplacent en automobile peuvent aussi avoir accès à un calcul précis des émissions de gaz à effet de serre émis pour leur déplacements.

Les entrées des citoyens sont conservés dans une base de donnée géospatiale qui permet de faire une analyse poussé des besoins en terme de transport des citoyens. C'est au niveau de la fonction d'analyse que les données ouvertes du site de https://www.donneesquebec.ca/, et de plusieurs autres sites tel https://ouvert.canada.ca/ et https://www12.statcan.gc.ca/census-recensement sont exploités.

Comment on a construit notre solution

Composantes logicielles

La solution est composé de plusieurs composantes logicielles décrites ci-dessous.

Application web mes-ges

Basé sur angular, elle permet aux citoyens de comparer différentes moyens de transport pour ses déplacement vers son lieu de travail. Elle utilise les API de Nominatim pour le géocodage, de google directions pour le calcul de trajets et de notre API REST.

API REST

Basé sur PHP, l'api permet d'exposer certaines informations de notre base de donnée tel les caractéristiques d'efficacité énergétique de tous les modèles de véhicules en vente au Canada. (nous n'avons pas encore chargé les données de véhicules électriques et de véhicules hybride-branchables). Elle permet aussi à l'application web mes-ges de persister les informations entrés par les citoyens dans une base de donnée lorsqu'il appuie sur le bouton "Calculer mes GES".

Application web analyse

Basé sur OpenLayers, cette application permet à l'utilisateur de sélectionner une municipalité de destination. Et grace a une fonction d'analyse spatiale développé dans la base de donnée et exposé par le serveur de tuiles vectorielle, d'afficher tous les polygones des municipalités d'origines ainsi que le nombre de trajets qui se rendent à la municipalité sélectionnée. Cette présentation permet de préserver la confidentialité des données, en ne présentant pas exactement d'où proviennent les trajets. L'expérience utilisateur de cette application mérite certe d'être améliorer, cependant elle a un énorme potentiel qui ne demande qu'à être exploité.

Service de tuiles vectorielles

Basé sur pg_tileserv, ce service permet d'exposer les données géospatiales afin de les afficher de manière extrêmement efficace sur la carte de l'application web analyse. Il expose non seulement des données spatiales, mais aussi des fonctions d'analyses spatiales développés à même la base de donnée.

Base de donnée

Basé sur PostGIS, notre base de donnée géospatiale permet d'importer, de traiter et d'effectuer des requêtes complexes sur toutes les données du système. Que ce soit les données des différents sites de données ouvertes exploités sur le projet, ou encore les données collectés à travers l'application web mes-ges.

Logiciel d'analyse client lourd

Le logiciel libre QGIS a été utilisé afin d'analyser les données, et de les visualiser, et de déterminer quelle sources de données étaient le plus utililes pour notre application. Elle permet aussi de faire des analyses plus poussés que le client web d'analyse.

Infrastructure

Toute la solution est déployé sur une instance machine virtuelle en infonuagique (AWS). Tous les composants sont conteneurisés afin de facilité le déploiement.

Les défis qu'on a rencontrés

Au départ, notre objectif était de faire tous les calculs de trajet avec des logiciels libres (OTP et OSRM) et des données ouvertes (OSM), cependant pour les calculs de trajets de transport en commun, nous devions avoir les données au format gtfs, à jour pour toutes les municipalités du Québec. Malheureusement, la ville de Montréal n'offre plus que les données GTFS-RT soit temps réel, et ce à travers une API qui nécessite un abonnement. https://www.donneesquebec.ca/recherche/dataset?organization=&q=gtfs

Nous avons fait tout le développement et les tests avec les données de la Ville de Québec https://www.donneesquebec.ca/recherche/dataset/rtc-gtfs-arrets-et-les-parcours cependant au moment de faire nos tests avec les jeux de données de toutes les municipalités du québec, les résultats étaient mitigés, c'est pourquoi nous avons basculé vers l'API Google directions.

Les conteneurs officiels de PHP ne contiennent pas les librairies nécessaires pour s'interfacer avec PostgreSQL. Lorsqu'on installait les librairies, plusieurs erreurs survenaient. Une grosse soirée à été perdu sur ce problème.

La configuration des mandataires inverse (reverse proxy) nous a causé quelques problèmes.

Ce dont nous sommes le plus fière

Nous sommes très fiere d'avoir réussi à livrer une solution entièrement fonctionelle et ce en quelques jours de travail intense. Pour notre équipe, c'était en quelque sorte des retrouvailles puisque nous sommes d'anciens collègues et que nous avons participé a 2 autres événements de type hackathon par le passé.

La suite pour cfjs et mes-ges

La prochaine étape est de prendre en considération les commentaires des juges de la compétition. On aimerait donner suite au projet. L'objectif ultime serait d'offrir un service aux municipalités ainsi qu'au ministère des transports afin de mieux comprendre les besoins en transport des citoyens et ainsi d'améliorer l'offre de transports en commun. Nous sommes d'avis que le seul moyen de convaincre un automobiliste de choisir le transport en commun, c'est d'offrir un moyen de transport efficace et économique.

Captures d'écran

alt text alt text alt text alt text alt text

Built With

Share this project:

Updates