#Développement web #Google Apps Script #Google Sheets #Gestion des droits

Hub Academy : prototype de formation gamifiée

⏱ juil. 2026 → en cours lecture 1 min · dossier détaillé 9 min

ContexteLes collaborateurs connaissent mal les fonctions avancées et les nouveautés de Google Workspace, et une documentation classique est peu lue.

Mon rôleSeul sur le projet : conception, développement front-end et back-end, hébergement, modèle de données et gestion des droits.

StatutPrototype avancé, pas un produit fini. Il sera présenté à ma hiérarchie, qui décidera s'il mérite d'être industrialisé et déployé.

L’essentiel

  • Le besoin : les astuces Google Workspace existent, mais personne ne va les chercher dans une documentation. J’ai voulu un lieu où l’on a envie de revenir.
  • Une architecture sans serveur ni budget : la web app est hébergée sur Google Apps Script, et une Google Sheet sert de base de données.
  • Un contenu géré sans code : un éditeur intégré au site écrit directement dans la Sheet.
  • Des droits contrôlés : quatre rôles, vérifiés côté serveur ; le code HTML/JS est réservé aux admins, pour éviter l’injection de script.
  • Un projet piloté : note de cadrage, réseau PERT, diagramme de Gantt et suivi prévu / réalisé jusqu’à la présentation à ma hiérarchie.
Page d'accueil du Hub : quête du jour, mur d'astuces, progression du joueur
L'accueil du prototype : formation à la une, mur d'astuces, progression du joueur (titres de test floutés).
Diagramme de Gantt du Hub Academy de juillet à décembre 2026
Le planning : réalisé en plein, prévisionnel hachuré, jusqu'à l'échéance de présentation.
Dossier détaillé : architecture, captures, gestion de projet, limites

Contexte du projet

Ce projet prolonge un travail de formation des collaborateurs aux outils Google Workspace. Le constat de départ : les astuces utiles existent, mais personne ne va les chercher dans une documentation. L’idée a donc été de créer un lieu où l’on a envie de revenir : un hub qui présente les astuces méconnues et les nouveautés sous forme de cartes, avec une mécanique de jeu qui récompense la curiosité.

Objectifs :

  • rendre la découverte des outils ludique et régulière ;
  • permettre à des non-développeurs d’ajouter et de modifier le contenu sans toucher au code ;
  • n’utiliser que les outils déjà disponibles dans l’entreprise, donc aucun serveur ni budget supplémentaire.

Environnement Technologique

  • Hébergement et back-end : Google Apps Script (web app servie par doGet)
  • Base de données : Google Sheets (onglets Joueurs, Astuces, Formations, Admin)
  • Front-end : HTML, CSS et JavaScript dans une page unique
  • Illustrations des cartes : une Gem Gemini dédiée, avec une charte de style et des planches de référence
  • Authentification : le compte Google Workspace de l’utilisateur

Actions réalisées

1. Une architecture sans serveur

La web app est entièrement hébergée sur Google Apps Script : une fonction doGet sert la page, et les fonctions côté serveur lisent et écrivent dans la Google Sheet, qui fait office de base de données. Ce choix évite tout serveur à administrer et s’appuie sur l’authentification Google déjà en place.

Navigateur ──▶ Apps Script (doGet) ──▶ Page HTML / CSS / JS
     │                                        │
     └──── appels serveur (google.script.run) ┘
                        │
                        ▼
                  Google Sheet
     Joueurs · Astuces · Formations · Admin
Onglet Joueurs de la Google Sheet : rôle, niveau, XP, série de jours
L'onglet Joueurs de la Google Sheet, qui sert de base de données : rôle, niveau, XP, série de jours, boosters. Adresse e-mail et données de sauvegarde floutées.

Chaque joueur occupe une ligne de l’onglet Joueurs :

Colonne Rôle
A · Email Identifiant du joueur : l’adresse de son compte Google, reconnue automatiquement à la connexion
B · Nom complet Prénom affiché dans le site
C · Rôle Lecteur, Contributeur, Admin ou Superadmin : c’est cette case que le serveur vérifie avant chaque action
D · Niveau Calculé à partir de l’XP : un niveau tous les 100 XP
E · XP Total Points gagnés en appliquant les astuces
F · Jours consécutifs Série de jours de visite d’affilée
G · Dernière activité Date de la dernière activité, qui permet de prolonger ou de remettre à zéro la série de jours
H · Statut Compte actif ou non
I · Sauvegarde (JSON) Sauvegarde de la progression au format JSON : astuces lues, cartes possédées… (floutée)
J · Boosters Paquets de cartes gagnés et pas encore ouverts : un par niveau franchi
K · Poussière Monnaie obtenue en recyclant les cartes en double (Commune 5, Peu commune 10, Rare 25, Épique 100), qui sert à fabriquer une carte manquante

2. Un contenu piloté sans code

Le contenu n’est pas écrit en dur dans le code : chaque carte est une ligne de la Sheet. Une carte se compose de champs fixes (titre, catégorie, rareté…) et de zones empilables : texte, image, ou bloc de code HTML/CSS/JS pour les démonstrations interactives. Un éditeur intégré au site écrit directement dans la Sheet : on n’a jamais besoin de rouvrir Apps Script ni la feuille de calcul pour gérer le contenu.

Formulaire « Ajouter une formation » de l'éditeur intégré
L'éditeur intégré : ajouter une formation ou une astuce se fait depuis le site, qui écrit directement dans la Sheet.

3. Une gestion des droits côté serveur

Quatre rôles ont été définis, et chaque droit est vérifié côté serveur, jamais seulement dans l’interface :

Rôle Ce qu’il peut faire
Lecteur Consulter, jouer, collectionner
Contributeur Proposer et éditer des astuces
Admin Utiliser la zone de code HTML/CSS/JS
Superadmin Gérer les permissions des autres utilisateurs

La zone de code est réservée aux admins pour une raison de sécurité : autoriser n’importe qui à publier du JavaScript reviendrait à ouvrir la porte à l’injection de code dans la page des autres utilisateurs (XSS).

Panneau d'administration : liste des membres et choix du rôle
Le panneau d'administration réservé au superadmin : chaque membre reçoit un rôle, vérifié ensuite côté serveur. Adresses e-mail floutées.

4. La gamification : la « Hub Academy »

Page d'accueil du Hub : quête du jour, mur d'astuces, progression du joueur
L'accueil : la formation à la une, le mur d'astuces à valider, la progression (niveau, XP, série) et la dernière carte débloquée. Titres de test floutés.
  • XP et niveaux (un niveau tous les 100 XP), séries de jours consécutifs ;
  • cartes à collectionner avec quatre raretés (Commune, Rare, Épique, Légendaire) ;
  • un univers de cartes inspiré de l’histoire de l’entreprise, avec un « Le saviez-vous ? » au verso de chaque carte ;
  • les cadres des cartes sont dessinés en code ; l’IA ne produit que l’illustration, selon une charte de style fixe ;
  • les cartes Épiques et Légendaires sont « vivantes » : inclinaison 3D et reflet qui suit la souris.
Booster de la série L'Essor avant ouverture
Prototype de l'ouverture d'un booster : on déchire le paquet en glissant le doigt le long du pointillé.
Carte épique « Les Trois Fondateurs » révélée
Une carte Épique révélée : cadre doré, halo, et effet de profondeur quand on la bouge.
Récapitulatif d'un booster : trois cartes, nouvelles ou doublons
Le récapitulatif : chaque carte est marquée « Nouvelle » ou « Doublon », selon la collection du joueur.

5. Une direction artistique choisie, pas subie

Une dizaine de pistes graphiques ont été comparées avant de retenir une direction « Arcade » : thème sombre indigo, or pour tout ce qui touche au jeu, et couleurs des applications Google pour l’information.

6. Prochaine étape : la présentation à ma hiérarchie

Le Hub n’est pas encore ouvert aux collaborateurs. Une fois la V1 terminée, je la présenterai à mes responsables : c’est à eux de décider s’il est déployé, et s’il doit continuer d’évoluer. L’architecture a été pensée pour cette décision : rien à installer, aucun coût, et un contenu que l’équipe peut reprendre sans moi.

7. Gestion de projet : planification et suivi

Note de cadrage

Objectif Faire découvrir les astuces et les nouveautés Google Workspace de façon ludique et régulière
Périmètre de la V1 Mur d’astuces, éditeur intégré, rôles et administration, progression (XP, niveaux, séries), cartes à collectionner et boosters
Hors périmètre Déploiement à l’ensemble des collaborateurs, statistiques d’usage
Contraintes Aucun budget, aucun serveur à administrer, réalisé seul en parallèle de l’alternance
Livrables La web app, la base Google Sheets, l’univers des cartes, la présentation à ma hiérarchie
Critère de réussite Le prototype permet à ma hiérarchie de décider, en connaissance de cause, d’un déploiement ou non

Le projet a d’abord avancé sans planning formel, tâche après tâche. Pour préparer la présentation à ma hiérarchie, je l’ai découpé en tâches avec leurs dépendances à partir des dates réelles de fin, puis planifié la suite jusqu’à l’échéance.

Réseau PERT du Hub Academy : douze tâches, leurs dépendances et le chemin critique
Réseau PERT : une tâche démarre quand celles dont elle dépend sont finies. Le chemin critique (en vert) passe par la direction artistique, l'univers des cartes et les boosters : c'est lui qui a fixé le début des tests.
Diagramme de Gantt du Hub Academy de juillet à décembre 2026
Diagramme de Gantt : le réalisé (plein) et le prévisionnel (hachuré), avec la date du jour et l'échéance de présentation.

Suivi prévu / réalisé

Tâche Prévu Réalisé Écart
Cadrage → boosters et collection (T1 à T9) Pas de planning initial Terminé le 23/09 Non mesurable : c’est ce constat qui a motivé le planning
Tests et corrections (T10) 15/11 En cours À suivre
Préparation de la présentation (T11) 27/11 — À suivre
Présentation à la hiérarchie (T12) 27/11, au plus tard le 04/12 — Une semaine de marge

Ce que j’en retiens : le chemin critique montre que l’univers des cartes et les illustrations ont pesé plus lourd que le développement lui-même (rôles et administration terminés dès le 19/08). Pour la suite, chaque tâche a une date prévue : l’écart se mesurera à chaque étape, et la semaine de marge avant l’échéance absorbe un retard sur les tests.

8. Un prototype, pas un produit : ce qu’il faudrait pour aller plus loin

J’ai mené ce projet seul, avec les moyens disponibles. Le résultat est un prototype avancé, fonctionnel de bout en bout, mais loin de ce que livrerait une équipe de développement. Le présenter honnêtement fait partie du travail :

Ce que fait le prototype Ce qu’exigerait un produit
Tests manuels, au fil du développement Tests automatisés et recette par d’autres personnes que le développeur
Un seul développeur, sans relecture du code Revue de code, versionnage partagé, déploiement contrôlé
Rôles vérifiés côté serveur Audit de sécurité indépendant
Données des joueurs dans une Sheet (e-mail, progression) Analyse RGPD : données strictement nécessaires, durée de conservation, information des utilisateurs
Apps Script, gratuit et déjà disponible Validation de la tenue en charge si tous les collaborateurs l’utilisent (quotas Apps Script)
Contenu et maintenance assurés par moi Une équipe ou un référent désigné pour faire vivre le contenu

C’est précisément l’objet de la présentation à ma hiérarchie : montrer ce que le prototype prouve, et ce qu’il coûterait d’en faire un outil officiel.

Difficultés rencontrées & Solutions

Problème Solution
Faire évoluer le contenu sans dépendre d’un développeur Contenu en Sheet + éditeur intégré au site : zéro modification du code pour ajouter une astuce
Ouvrir la contribution sans exposer le site Rôles vérifiés côté serveur ; zone de code réservée aux admins (risque XSS)
L’IA écrit du texte illisible dans les images Aucune lettre dans les illustrations : noms, cadres et logos sont ajoutés en code par-dessus
Le style des illustrations dérivait d’une carte à l’autre Gem dédiée avec charte de style et planches de référence codées (« cadrage C8, lumière L2 »)

Compétences BTS SIO

Tableau E5 Réalisations en milieu professionnel en cours de seconde année · juil. 2026 → en cours

  • Mettre en place et vérifier les niveaux d'habilitation associés à un service (Gérer le patrimoine informatique)
    Quatre rôles (lecteur, contributeur, admin, superadmin) vérifiés côté serveur
  • Participer à l'évolution d'un site Web exploitant les données de l'organisation (Développer la présence en ligne de l'organisation)
    Site web dont tout le contenu provient des données de l'organisation (Google Sheets)
  • Analyser les objectifs et les modalités d'organisation d'un projet (Travailler en mode projet)
    Note de cadrage : objectif, périmètre de la V1, contraintes, livrables et critère de réussite
  • Planifier les activités (Travailler en mode projet)
    Découpage en douze tâches avec dépendances, réseau PERT, chemin critique et diagramme de Gantt
  • Évaluer les indicateurs de suivi d'un projet et analyser les écarts (Travailler en mode projet)
    Suivi prévu / réalisé jusqu'à la présentation, analyse du chemin critique et marge avant l'échéance
  • Mettre en place son environnement d'apprentissage personnel (Organiser son développement professionnel)
    Apprentissage d'Apps Script et des architectures sans serveur

Hors E5Blocs 2 et 3

  • Bloc 3 Garantir la disponibilité, l'intégrité et la confidentialité des services et des données face à des cyberattaques

Voir le tableau de synthèse complet →

← Projet Précédent Portfolio professionnel : conception et maintenance Projet Suivant → Pipeline IA de production d'affiches
johan@lybernet: ~ — palette Échap
↑ ↓ choisir Entrée ouvrir