Makina Blog
[Inside] Les municipales : un projet pas comme les autres à Makina Corpus.
Comment partir d'une idée et arriver rapidement à un produit minimal fonctionnel.
La naissance de l'idée
Vendredi 21 mars, veille du week-end des municipales (1er tour), 9h. Comme souvent, tout part d'une discussion informelle. En ce début de journée, j'évoque le nouveau studio de télévision créé par un ami de longue date, Guillaume Truilhé, directeur du site d'information toulousaine ToulouseInfos.
Vendredi 21 mars, 9h10 : L'idée naît rapidement : pourquoi ne pas faire une carte interactive des (futurs) résultats de votes des élections municipales et la publier sur le site ToulouseInfos en début de semaine ?
La cartographie est l'un des domaines de prédilection de Makina Corpus. Mais que présenter d'intéressant et d'original ? Frédéric Bonifas (un de nos experts de cartographie, déjà auteur des cartes historiques de Toulouse (en 1680 et en 1830) et de l'application Moodwalkr), et moi-même tombons d'accord : faire une carte représentative des élections au niveau le plus fin possible, soit par bureau de vote !
Après quelques recherches rapides sur les précédentes élections, nous constatons que cette présentation des résultats par bureau est peu habituelle ; cela pourrait donc être un vecteur de visibilité intéressant.
Nouvelle mission de la journée : tout préparer pour dimanche soir pour qu'il ne reste qu'à rentrer les résultats du premier tour afin de générer la carte correspondante.
Il est désormais 11h, l'idée est validée, nous nous lançons dans la réalisation qui nécessite de résoudre les problèmes suivants :
-
Comment récupérer les données des bureaux de vote ?
-
Comment récupérer le découpage des bureaux de vote ?
-
Que va-t-on choisir techniquement pour avoir un résultat rapide ?
La réalisation du socle technique
Les choix techniques sont rapidement arrêtés : nous reprendrons un socle déjà utilisé dans de précédents projets cartographiques (expliqué dans des articles de blogs, utilisé dans les projets vuduciel de Loire Atlantique, CAUE Dordogne, …) : créer un site statique sur GitHub pages et afficher la carte grâce à Leaflet. Nous visons une simplicité maximale en un minimum de temps !
Frédéric trouve rapidement le découpage des bureaux de vote sur le site open data de Toulouse. Au format KML, il est rapidement converti en geoJSON grâce à QGIS et allégé via une technique.
Trouver le décompte des voix par bureau de vote est plus délicat. Mon contact journaliste m'explique la procédure archaïque de récupération des données électorales le dimanche soir à la préfecture : les villes où les résultats sont tombés sont énoncées, chaque journaliste intéressé lève la main, et autant de photocopies contenant les résultats de cette ville sont imprimées sur le moment. Et pas de logique par bureau de vote…
J'essaie donc d'anticiper le pire scénario où il n'y aurait pas de moyens de récupérer les informations de manière automatisée. J'initialise donc un fichier CSV permettant de saisir les résultats bureau par bureau pour chaque liste.
Un script Python le convertira en un fichier JSON qui sera utilisé par Leaflet pour afficher les résultats dans chaque zone/bureau de vote.
Une fois le code produit, il est déployé sur GitHub, accessible directement par les GitHub Pages : le site n'attend plus que les données des élections.
On en profite pour intégrer Google Analytics afin de suivre l'impact de cette carte électorale.
Il est 17h45, mission accomplie pour la phase 1.
La récupération des résultats
Lundi 24 mars. Le décompte des résultats du premier tour s'est achevé tard hier dans la soirée.
Bonne nouvelle en arrivant ce matin, les résultats sont disponibles via un format numérique. Je suis ravi de ne pas devoir taper les 2500 résultats (250 bureaux de vote x 10 listes) mais… il faut tout de même gérer une URL par bureau de vote
J'écris un script appelant chacune de ces URL à partir des identifiants des bureaux déjà récupérés dans le fichier KML : espérons que le site de toulouse.fr ne croit pas à une agression avec les 250 requêtes exécutées en quelques secondes depuis la même adresse IP… Ça passe \o/
Les données ainsi récupérées sont converties au format JSON prévu et mises à disposition du site statique.
La majeure partie du travail est achevée, nous préparons désormais l'affichage spécifique du site sur des écrans de taille plus petite, notamment pour être intégré dans des posts de news / blogs via une iframe à largeur limitée (entre 650 et 700 pixels).
La communication autour du projet
Tout est prêt, ToulouseInfos publie donc un article montrant la carte.
L'effet est quasi-immédiat : La Dépêche du Midi nous contacte et intègre notre carte dans un article. Aussitôt après, France3 Midi-Pyrénées se manifeste, toujours pour intégrer cette carte très probablement pour le second tour !
La carte est reprise dans un article dans Toul'Eco, sur le site de la Mêlée…
Nous avons même été contactés par des têtes de listes pour leur générer une carte similaire indiquant leur pourcentage dans chaque bureau, ce qu'Eric Bréhault et Simon Geoges réalisent dans la foulée.
Le développement du concept
Constatant l’engouement pour ce type de représentation, un collègue nantais, Sébastien Corbin décide de réutiliser le socle technique pour réaliser la carte de Nantes. Les cartes de Rennes et Caen arrivent dans la foulée grâce à Julien Marinescu et Sylvain Beorchia.
Le journaliste Bertrand Enjalbal (un contact de Simon Georges) est intéressé par une carte des résultats de Marseille ; il possède les données brutes sans pouvoir les traiter. Nous voilà donc partis sur la déclinaison de notre carte pour Marseille également.
La carte pour Montpellier sera aussi réalisée un peu plus tard dans la semaine.
Toutes ces adaptations sont possibles car les données pour les découpages de bureaux de votes et leurs résultats sont mises à disposition par beaucoup de villes, parfois même sur des plates-formes open data dédiées.
Toutefois, les formats de ces données ne sont pas du tout homogènes d'une ville à l'autre, ce qui oblige à écrire un script spécifique pour chaque cas afin de générer correctement les fichiers des résultats. Mais c'est encore plus compliqué pour les villes qui ne fournissent qu'un format difficilement exploitable (PDF par exemple). Cela a déjà été le sujet de plusieurs posts, dont un sur lemonde.fr.
La conclusion
La structure de la première carte a été réalisée assez rapidement (une demi-journée à 2 personnes) afin d'arriver à un résultat présentable au plus vite. Ce n'est qu'après les premiers retours et les demandes des visiteurs que nous avons envisagé les déclinaisons (autres villes, carte par candidat…).
Le ROI a été de ce fait maximisé : si la carte n'avait pas eu de succès, nous n'aurions passé que très peu de temps dessus.
Nous avons ainsi adapté avec succès le concept de MVP (Minimum Viable Product), cher aux Lean Startups, dans un cadre très restreint, soit un projet de quelques jours.
Formations associées
Formations Front end
Formation Angular
À distance (FOAD) Du 25 au 29 novembre 2024
Voir la formationFormations Outils et bases de données
Formation PostgreSQL
Nantes Du 11 au 13 décembre 2024
Voir la formationFormations IA / Data Science
Formation Initiation au Python scientifique
À distance (FOAD) Du 2 au 6 décembre 2024
Voir la formationActualités en lien
Nouvelle Journée Technique du PRNSN : le numérique dans les pratiques sportives de nature
Le 27 novembre 2024, Montpellier accueille la 18e Journée technique du réseau national des sports de nature, organisée par le PRNSN.
Mini-guide à l’usage des collectivités : l’Open Data, entre nécessité et opportunité
Tout ce que vous avez toujours voulu savoir sur l’Open Data. Petit guide à destination des collectivités pour l’appréhender et se l’approprier.
Makina Corpus, sponsor et conférencier au Capitole du Libre 2024
Les 16 et 17 novembre à Toulouse, Makina Corpus s’engage aux côtés de la communauté du logiciel libre en sponsorisant le Capitole du Libre. Ne manquez pas la conférence de notre expert Drupal, Simon George.