FR:Cocoricarte
| Cocoricarte | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Auteur : | Cocoricarte | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Licence : | Propriétaire (freemium) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Plateformes : | Web, Android et iOS | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| État : | Actif | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Langue : | français
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Site Internet : | https://cocoricarte.fr | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Langages de programmation : | Dart, PHP et Python | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Application de planification et d'optimisation de tournées d'affichage libre pour équipes de terrain. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Cocoricarte est une application web et mobile française destinée à l'organisation de tournées d'affichage libre et de sessions de collage pour des associations, des campagnes électorales et des organisations militantes. Le service repose en partie sur l'écosystème OpenStreetMap pour le calcul d'itinéraires et l'optimisation de tournées multi-équipes.
Description
Cocoricarte permet à des collectifs ou à des organisations de cartographier des emplacements d'affichage libre, de constituer des équipes de bénévoles, puis de générer et d'optimiser les itinéraires entre ces emplacements. L'outil prend en charge à la fois les déplacements piétons et automobiles, et propose un suivi de la progression des équipes en temps réel.
Le projet est développé en France et s'adresse principalement à un public francophone. La couverture géographique du service de routage s'étend à la France métropolitaine ainsi qu'aux territoires d'outre-mer (Guadeloupe, Martinique, Guyane, Mayotte, La Réunion).
Fonctionnalités
- Cartographie collaborative d'emplacements d'affichage libre
- Création et gestion d'équipes
- Génération automatique de tournées
- Optimisation d'itinéraires multi-équipes (VRP)
- Calcul d'itinéraires piétons et automobiles
- Équilibrage des tournées par temps, distance ou nombre d'arrêts
- Définition manuelle de l'ordre de passage (mode sans optimisation)
- Suivi de la progression des équipes
- Gestion collaborative et multi-organisations des emplacements
Utilisation des données et logiciels OpenStreetMap
Le fond cartographique principal affiché dans l'interface utilisateur de Cocoricarte ainsi que les vues satellites proviennent du Géoportail de l'IGN, et non des tuiles OpenStreetMap. Le projet n'utilise donc pas OSM comme fond de carte.
En revanche, l'ensemble des fonctions de routage et d'optimisation s'appuie sur l'écosystème OpenStreetMap :
- Le graphe routier utilisé pour le calcul d'itinéraires est construit à partir des données OpenStreetMap, téléchargées depuis Geofabrik (extraits France métropolitaine et DOM-TOM).
- Le calcul d'itinéraires point à point repose sur OSRM (Open Source Routing Machine), avec des profils dédiés pour la voiture et la marche à pied.
- L'optimisation de tournées multi-véhicules est réalisée à l'aide de Vroom (Vehicle Routing Open-source Optimization Machine).
- Les données OSM sont mises à jour périodiquement à partir des extraits Geofabrik.
Cocoricarte ne renvoie pas de modifications cartographiques vers OpenStreetMap ; le projet est consommateur des données et n'est pas un outil d'édition.
Architecture technique
Cocoricarte se compose de plusieurs services indépendants :
| Composant | Rôle | Technologies |
|---|---|---|
| Application cliente | Interface utilisateur mobile et web | Flutter |
| API métier | Gestion des utilisateurs, emplacements, organisations, équipes | Symfony, PostgreSQL, PostGIS |
| Service de routage | Calcul et optimisation d'itinéraires | FastAPI, OSRM, Vroom |
| Site web | Site institutionnel et annuaire des emplacements | Hugo |
Les requêtes spatiales (recherche par zone, distance, périmètre administratif) sont gérées par PostGIS. L'ensemble des services est déployé sous Docker.
Routage et optimisation
Le service de routage est organisé autour de plusieurs briques articulées :
- Deux instances OSRM distinctes pour la voiture (profil
car.lua) et la marche (profilfoot.luaavec une vitesse de 4,2 km/h). - Une instance Vroom qui consomme les matrices de distance et de temps produites par OSRM pour résoudre le problème d'optimisation.
- Une API HTTP qui expose les fonctions de planification : nombre de véhicules, points de départ et d'arrivée, contraintes de temps, mode d'équilibrage.
Trois modes d'équilibrage sont disponibles : par temps total (trajet + temps de service), par distance parcourue, ou par nombre d'arrêts par véhicule. Un mode « ordre fixe » permet également de désactiver l'optimisation et de respecter une séquence d'arrêts fournie par l'utilisateur.
La préparation des données OSM suit la chaîne classique osm.pbf → osrm-extract → osrm-partition → osrm-customize, avec fusion préalable des extraits France métropolitaine et DOM-TOM via Osmium.
Modèle économique
Cocoricarte est un logiciel propriétaire distribué selon un modèle freemium. Le code source n'est pas publié sous licence libre. Les briques d'infrastructure utilisées par le projet (OSRM, Vroom, données OpenStreetMap, PostGIS) restent quant à elles sous leurs licences respectives.