, , ,

Coder pour le bien-être : Créer un baromètre de stress automatisé et sécurisé avec Apps Script

Nous passons notre temps à automatiser des flux de travail, à connecter des APIs et à optimiser des bases de données. Mais en tant que développeurs, nous oublions souvent d’appliquer ces compétences à notre propre métrique la plus critique : notre santé mentale. Aujourd’hui, je vous partage une architecture technique complète sur Google Workspace pour mesurer la vitalité, avec un focus particulier sur l’expérience utilisateur (UX Email) et la protection des données.

capture d’écran 2025 12 21 à 12.02.52
Exemple de bilan reçu par email

1. L’architecture de la solution

L’idée est simple mais l’exécution doit être impeccable. L’utilisateur répond à un formulaire sur son état émotionnel. Instantanément, un script :

  • Récupère et inverse les scores (pour parler de « Vitalité » et non de « Stress »).
  • Génère une visualisation graphique (Jauge CSS).
  • Envoie un bilan privé par email.
  • Nettoie les traces (Confidentialité).

2. Le défi technique : Emailing HTML & CSS in-line

Le point fort de ce projet réside dans la fonction genererHtmlEmail. Gmail est capricieux avec le CSS. Pour afficher une jauge de progression dynamique sans utiliser d’image externe, j’ai utilisé des conteneurs <div> avec des largeurs en pourcentage calculées en JavaScript.

// Extrait de la logique de rendu visuel
const pourcentage = Math.min(100, Math.max(0, score));
const jaugeHtml = `
  <div style="background: #e0e0e0; border-radius: 6px;">
    <div style="width: ${pourcentage}%; background: ${couleur}; height: 12px;"></div>
  </div>`;

Cela garantit que le destinataire voit son résultat immédiatement, sur mobile ou desktop, sans « télécharger les images ».

3. Modernité du code (ES6+ et V8)

Fini le temps du vieux JavaScript dans Apps Script. Ce projet utilise exclusivement :

  • Des fonctions fléchées pour la concision.
  • La déstructuration (const { min, max } = SEUILS) pour la lisibilité.
  • Des template literals pour construire le HTML sans concaténation illisible.
  • try...catch systématique pour la robustesse.

4. « Privacy First » : L’anonymisation automatique

C’est le point critique. Stocker des données de santé (même informelles) dans un Google Sheet pose des questions éthiques. La solution ? Le script agit comme un « passe-plat ». Dès que l’email est parti via MailApp, le script exécute une méthode clearContent() sur les cellules contenant l’email et le nom. On ne conserve que les statistiques anonymes (le score et la date).

Ce projet démontre qu’Apps Script n’est pas limité aux factures ou aux plannings. C’est un langage de script puissant capable d’orchestrer des interactions humaines complexes et sécurisées. Si vous souhaitez implémenter cela pour votre équipe ou pour vous-même, le code est disponible sur Github https://github.com/FabriceFx/evaluation_stress/tree/main et prêt à être tester dés à présent sur https://forms.gle/uS3d8Taiy7XPJGQm8 (Vous pouvez utiliser une adresse jetable style Yopmail pour encore plus de sécurité).