Présentationde l'outil numérique JDN
Contexte et objectif du projet
Dans le cadre de campagnes de mesures olfactives en environnement extérieur (état initial ou surveillance dans le cadre de la réglmementation ICPE), l'application JDN a été conçue pour digitaliser et structurer la saisie des observations réalisées par un jury de nez professionnel. Ces observations, historiquement notées sur papier, concernent l’intensité perçue de différentes catégories d’odeurs, la direction et vitesse du vent, ainsi que des commentaires contextuels.
L’application vise à :
- Structurer les données collectées par les jurés sur le terrain.
- Améliorer la qualité, la fiabilité et la traçabilité des mesures.
- Simplifier l’exploitation des données via une exportation en tableur (.xlsx).
- Assurer une utilisation rapide et intuitive sur mobile.
Choix techniques et architecture
L'application a été développée en HTML / CSS / JavaScript pur, sans framework lourd, pour maximiser la légèreté, la rapidité et la compatibilité avec des navigateurs mobiles. Elle est entièrement "utilisateur-side", c'est-à-dire sans serveur ni base de données, les données étant persistées localement via localStorage
dans le navigateur. L’export Excel se fait via la bibliothèque SheetJS (xlsx.js
).
Structure du code et organisation fonctionnelle
1) Interface utilisateur (HTML/CSS)
En-tête (<header>) : Nom de l'app + choix du membre du jury
Formulaire principal (<main>) :
- Choix du point de mesure (P1 à P20).
- Bouton réinitialiser le formulaire.
- Sélection de la session (AM/PM) et de l’heure.
- Saisie des conditions de vent.
- Saisie de l’intensité olfactive selon 10 catégories prédéfinies pour deux modes : "Continu" et "Bouffées".
- Mode Continu : saisie continue.
- Mode Bouffées : saisie par paliers.
- Zone de commentaire libre.
Pied de page (<footer>) :
- Bouton pour enregistrer ou mettre à jour la mesure.
- Bouton pour exporter l’ensemble des données au format Excel.
2) Logique JavaScript
- Initialisation de la sélection juré via
localStorage
. - Remplissage dynamique des points de mesure (P1 à P20) à l’ouverture.
- Catégories d’odeurs définies dans un tableau d’objets avec nom, code et couleur d’arrière-plan.
- Événements utilisateur :
- Changement de point/session : charge les données existantes si présentes.
- Saisie : marque le formulaire comme “non sauvegardé”.
- Bouton réinitialiser : remet à zéro les champs, après confirmation si besoin.
- Bouton enregistrer : sauvegarde une ligne dans un dictionnaire
dataMap
, avec une clépoint_session
, persisté danslocalStorage
. - Bouton exporter : transforme
dataMap
en tableau Excel, avec ligne d’en-tête, viaXLSX.js
, et télécharge le fichier.
Axes d’amélioration (en cours)
- Ajout de géolocalisation automatique du point de mesure (API GPS navigateur).
- Stockage distant via API ou base de données cloud (Firebase, Supabase) pour usage collaboratif en temps réel.
- Synthèse graphique (chart.js) des mesures enregistrées (camemberts par catégorie, radar…).
- Ajout d'une validation/supervision à distance via interface administrateur.
- Support multi-langue (internationalisation pour export ou partenaires).
- Application mobile installable (PWA) pour un usage hors-ligne optimisé.
Conclusion
L’application JDN est un outil simple, robuste et léger, conçu pour répondre à une problématique métier spécifique. Son développement a mobilisé des compétences en ergonomie, développement web, manipulation de données, et réflexion sur la structuration des entrées utilisateurs. Elle constitue un socle évolutif, et son perfectionnement entre pleinement dans le cadre du Crédit Impôt Recherche (CIR) par sa composante d’innovation technique, d’expérimentation et de prototypage.