Extension navigateur (Chrome/Firefox) qui enrichit les annonces immobilières Leboncoin avec les données officielles de diagnostic énergétique (DPE/GES) issues de la base ADEME, permettant de retrouver l'adresse réelle d'un bien.
- L'utilisateur ouvre une annonce Leboncoin et clique sur l'icône de l'extension
- L'extension extrait automatiquement les données du bien (surface, DPE, GES, localisation, consommation énergétique) via 3 stratégies complémentaires :
- Parsing du JSON
__NEXT_DATA__embarqué par Next.js - Scraping DOM en fallback
- Analyse visuelle des badges DPE/GES par comparaison de styles CSS
- Parsing du JSON
- L'extension interroge directement l'API publique ADEME (
data.ademe.fr) avec ces critères, puis score les candidats côté client — aucun serveur intermédiaire - Les résultats sont affichés avec un score de correspondance et un lien Google Maps vers l'adresse trouvée
Vie privée : depuis la v2.0, l'extension n'envoie plus aucune donnée à un backend privé. Les critères de recherche partent uniquement vers l'API publique ADEME (un service de l'État) ; rien n'est collecté ni stocké de manière centralisée (cohérent avec
data_collection_permissions: none).
packages/
└── extension/ # Extension Chrome/Firefox (Manifest V3)
Tout le code vit dans packages/extension/ : extraction des
données Leboncoin/SeLoger, requête ADEME directe, scoring et UI popup. Le backend
Express qui servait d'intermédiaire jusqu'à la v1.1.0 a été décommissionné en
juillet 2026 et son code supprimé.
- Node.js 20+
- npm 10+
git clone https://github.com/clementbichel/immo-locator.git
cd immo-locator
npm installnpm run build:ext # Bundle src/ → popup.jsPuis charger l'extension en mode développeur :
- Chrome :
chrome://extensions/→ Mode développeur → Charger l'extension non empaquetée → sélectionnerpackages/extension/ - Firefox :
about:debugging#/runtime/this-firefox→ Charger un module temporaire → sélectionnerpackages/extension/manifest.json
npm run package:ext # Zip du store + archive source AMO dans dist/npm test # Tous les tests
npm run test:ext # Idem, via le workspace
npm run test:watch # Mode watchExtension :
- Manifest V3 — Chrome + Firefox (cross-browser)
- esbuild — bundler IIFE
- Vitest — tests unitaires, intégration, E2E
- ESLint + Prettier
Aucune dépendance runtime : le code livré n'utilise que les API du navigateur et
fetch vers data.ademe.fr.
- Pas de
innerHTML— manipulation DOM viatextContentetcreateElement - CSP stricte dans le manifest,
connect-srclimité àdata.ademe.fr - Permissions minimales :
activeTab+scripting, aucun accès au stockage - Aucune donnée envoyée à un serveur tiers, aucune collecte
- Chrome Web Store
- Firefox Add-ons (AMO)
- Politique de confidentialité (source :
packages/extension/docs/privacy.html) - API ADEME — Dataset DPE
