PWA de comparaison des prix carburants en France, en Espagne et au Portugal, alimentée par les données ouvertes de prix-carburants.gouv.fr, du Ministerio para la Transición Ecológica (Espagne) et de la DGEG (Portugal).
Live : https://lingelo.github.io/fuel-radar/
- React 19 + TypeScript + Vite 7
- Tailwind CSS v4 (tokens Material 3)
- Leaflet + Marker Cluster (carte + pins par tier de prix)
- vite-plugin-pwa (installable, offline runtime caching)
Pipeline automatique lancé toutes les 2 h via GitHub Actions :
npm run data:frtélécharge l'archive instantanée du gouvernement français, parse le XML, et écritpublic/data/departments/{dept}.json+public/data/meta.json. Les marques (TotalEnergies, Leclerc, etc.) sont enrichies via Overpass / OpenStreetMap.npm run data:iberiarécupère les stations espagnoles (API REST du Ministerio, groupées par province →ES-{code}.json) et portugaises (API DGEG, groupées par district →PT-{slug}.json), avec des ids décalés (+100M / +200M) pour ne jamais entrer en collision avec les ids français.npm run dataenchaîne les deux.npm run history:bootstrapgénère l'historique nationalpublic/data/history.jsonet l'historique par stationpublic/data/history/{dept}.json.npm run history:dailymet à jour incrémentalement l'historique avec les prix du jour.
npm install
npm run dev # dev server
npm run build # build prod (TS check + vite build + PWA)
npm run data # rafraîchit les prix (France + Espagne + Portugal)
npm run history:daily # ajoute les prix du jour à l'historique
npm run lintPush sur main → GitHub Actions :
process-data.mjs(prix instantanés France)process-data-iberia.mjs(prix Espagne + Portugal)generate-history.mjs --bootstrap(historique)vite buildactions/deploy-pagesvers GitHub Pages
vite.config.ts configure base: '/fuel-radar/' pour le sous-chemin Pages.
- Carte — Leaflet + pins colorés par tier de prix (vert→rouge), cluster, panneau latéral desktop / bottom sheet mobile, recherche d'adresse via
api-adresse.data.gouv.fr(France) +photon.komoot.io(Espagne / Portugal). - Stations — liste triable par prix/distance, chips de carburant, badge « Le moins cher ».
- Détail — header carte, prix par carburant avec tendance 7 j, graphe en barres, deeplink Google Maps.
- Favoris — persistés en
localStorage. - Tendances — moyennes journalières nationales, multi-courbes 30 j / 90 j / 1 an.
- Réglages — écran de démarrage, unité, avertissement données anciennes.
Les filtres (carburant, rayon, tri, marques) sont également persistés en localStorage.