TechniGrain

Développement d’une application React Native Android de prise de mesures pour des systèmes de ventilation en silos à grain, couplée à une interface d’administration WordPress.

TechniGrain est une entreprise tourangelle à l’origine d’une méthode innovante d’analyse de la qualité des systèmes de ventilation des installations de stockage de grain.

Une application Android servant à cette prise de mesure a été développée par Mosaika. Conjointement à cet outil mobile, nous avons aussi créé un outil d’administration WordPress sur-mesure permettant à l’équipe TechniGrain de consulter ces mesures et d’éditer des documents de recommandations à destination des organismes de stockage agricole.

J’ai travaillé avec Pierre sur différents projets de développement d’application (sur Web et smartphone). Pierre est toujours à l’écoute du besoin, compréhensible dans son discours même sur des points techniques et très réactif. De plus, son travail est de qualité et la gestion de projet est bien réalisée et organisée.

Nous sommes très satisfait de notre application conçu par Pierre : elles est soignée, pratique et adaptable selon l’évolution de nos besoins. Je recommande à la fois les qualités techniques mais aussi relationnelles de Pierre.

Florine Aufrère, Ingénieur Recherche et Développement chez TechniGrain

Une application Android communiquant avec un back-office WordPress

Depuis 2019, nous travaillons main dans la main avec le studio Experiencis pour accompagner l’entreprise TechniGrain dans leur activité innovante du milieu agricole. Notre expertise aura permis :

  1. la création d’une application Android (React Native) offline-first pour la création de sites, silos, ventilateurs et la prise de mesures par des opérateurs formés par TechniGrain,
  2. la mise en place d’une administration web métier permettant aux équipes Technigrain de piloter l’activité, suivre les prises de mesures synchronisées des opérateurs, analyser ces données et générer des documents de recommandations pour ses clients,
  3. la création d’un seconde interface web à l’attention des superviseurs des clients de TechniGrain, leur permettant un suivi en interne du travail de leurs opérateurs, un accès en ligne aux documents édités par TechniGrain et à des exports CSV de leurs données terrain.

Prise de mesures via une appli mobile Android offline-first

Sur le terrain (dans les silos des organismes de stockage), des opérateurs formés utilisent l’application Android TechniGrain dont l’UI et l’UX ont été définis par notre partenaire Experiencis. Cette application permet aux opérateurs de simplifier tout le processus de prise de mesures consistant à :

  1. créer le site et les silos à analyser en remplissant des formulaires multi-étapes aux champs conditionnés sur les spécificités du lieu,
  2. enregistrer des ventilateurs en précisant toutes leurs particularités dans des formulaires multi-étapes conditionnels,
  3. créer un ensemble de configurations pour chaque ventilateur présentant tous les cas de ventilation en situation,
  4. et enfin effectuer un ensemble de vérifications puis de mesures (de pression, de vitesse d’air, électriques, etc…) pour chacune des configurations créées.
Aperçu de l’application TechniGrain

Ce long et complexe remplissage de données s’effectue à l’intérieur des silos de stockage de grain — sans accès Internet. L’application a donc été pensée offline-first :

  • le stockage des données se fait localement sur le smartphone (Redux Persist + Filesystem Storage) ;
  • une fois les mesures terminées, l’opérateur accède à un écran de synchronisation afin d’envoyer les données au serveur de l’outil.

Stack technique de l’application mobile Android

Côté technique, l’application est propulsée par :

  • un code JavaScript React Native pour ses fondations,
  • Redux et Redux Form pour la gestion des nombreux niveaux de données et des formulaires multi-étapes,
  • Axios pour les requêtes AJAX lors de l’envoi des données textes et fichiers (photos) ou réception de données lors de l’authentification utilisateur,
  • App Center de Microsoft pour un tracking des usages de l’application, la diffusion de mises à jour évolutives over-the-air (sans store) et le suivi d’éventuels bugs et crashs sur les téléphones des opérateurs.

Un extranet WordPress pour le suivi d’activité

Les données de l’app Android TechniGrain sont ensuite réceptionnées par un back-end WordPress et enregistrées dans une base de données SQL. Une fois fait, l’équipe TechniGrain peut alors les consulter et profiter d’un outil moderne afin de générer des documents de recommandations destinés à ses clients.

Tout comme le projet freebulle, l’interface TechniGrain d’administration WordPress a été entièrement revue :

  • le style général de l’administration (palettes, mise en page) a été retravaillé pour devenir cohérente avec l’identité visuelle TechniGrain,
  • des popups permettent de visualiser les détails des données des entités issues du travail dans l’application des opérateurs,
  • nombre d’éléments WordPress natifs, inutiles dans ce contexte, ont été rendus inaccessibles et cachés.

Widgets React JS pour l’analyse et l’édition de recommandations

En plus du suivi des données recueillies sur le terrain par les opérateurs, la plus-value de TechniGrain réside dans l’édition de documents d’analyse de la qualité de ventilation et de recommandations et optimisations des systèmes évalués.

Afin de parvenir à ces conclusions et à la présentation de ces documents, les chargés d’étude TechniGrain accèdent à un outil dynamique propulsé par WordPress et React JS. Ces widgets complexes permettent une grande automatisation du processus aux chargés d’étude en fonction des spécificités des ventilateurs évalués et des mesures effectuées par les opérateurs sur le terrain.

Construit en plusieurs étapes, cet outil propose de nombreux widgets dynamiques comme :

  • l’affichage de tableaux de calculs automatisés dépendant des mesures relevées dans l’application,
  • la création de courbes de ventilation et le positionnement des points de configuration avec ajout de commentaires,
  • l’édition de tableaux de consignes avec remplissage automatique des cellules selon des calculs dynamiques.

Ces étapes terminées, le système génère alors un document de recommandations final rendu disponible dans l’extranet mis à disposition aux superviseurs/clients.

Un mot sur le choix de l’architecture des données « à la WordPress »

Contrairement à d’autres projets où il aura été judicieux d’opter pour des tables SQL distinctes, l’usage des types de contenus et taxonomies natifs dans WordPress est ici le plus adapté pour offrir une structure de données optimale.

En effet, les entités du projet (sites, silos, ventilateurs, configurations, mesures, recommandations) possèdent un très grand nombre de propriétés — propriétés évolutives au gré des itérations et des maintenances de l’application.

Nous avons donc préféré un stockage de ces propriétés dans les habituelles post meta des post types de WordPress car la création de tables sur-mesure aurait impliquée des centaines de colonnes sur certaines entités, et la nécessité de créer des dizaines de « sous-tables » pour les données plus complexes.

Les metadonnées des entités proviennent d’objets JSON multi-niveaux de l’application mobile : un processus d’aplatissement intelligent a été développé afin de ne pas sérialiser ces données, offrant alors la possibilité à notre extension WordPress de requêter librement ces données pour leur consultation ou l’édition de documents de recommandations.

Au final, nous avons mis en place une structure de données typique à un développement WordPress :

  1. les opérateurs, superviseurs et administrateurs disposent chacun d’un compte (WP_User) avec un rôle spécifique,
  2. des types de contenus spécifiques (WP_Post) hébergent les sites, silos, ventilateurs, configurations, mesures et recommandations,
  3. des taxonomies (WP_Term) permettent d’assigner sites et utilisateurs aux clients de TechniGrain,
  4. et les données vitales provenant de l’application sont stockées dans des métadonnées post meta.

Seules quelques tables SQL ont été créées spécifiquement pour répondre à un besoin précis, comme la génération d’exports CSV de la base de ventilateurs de l’application (filtrés ou au complet).