KingsTeam organise des olympiades sous forme de quêtes, consacrées aux métiers, pour les enfants de la maternelle à la 12e classe. L’enfant choisit un pays, une ville et un type de compétition, s’inscrit à un métier comme « Détective », « Architecte » ou « Médecin », puis passe des tests en plusieurs manches : qualification, finale et superfinale. Chaque manche commence par une leçon vidéo, et les questions apparaissent exactement à la seconde où la leçon arrive à leur emplacement.
C’est le projet le plus ambitieux que nous ayons réalisé dans l’éducation, et le client le plus exigeant avec lequel nous ayons travaillé. Ce n’est pas une plainte, mais un chiffre : en trois mois, nous avons enregistré 185 demandes distinctes, chacune avec un numéro, une solution et un statut dans un registre qui ne supprime jamais aucune ligne. Certaines tenaient en un mot dans un texte. D’autres étaient des modules entiers, comme le studio vidéo présenté ci-dessous. Le client savait exactement à quoi chaque élément devait ressembler et n’acceptait pas le « presque ».
La plateforme a été développée de zéro. Le codage a commencé le 28 juin 2026 et le site a été mis en ligne le 15 septembre, onze semaines plus tard. Le jour du lancement, nous avons déployé cinq versions en production. Le site repose sur 40 pages, environ 46 000 lignes de TypeScript et 39 migrations de base de données.
La plateforme comprend huit rôles : élève, diplômé, enseignant, enseignant en maternelle, expert, manager, sponsor et administrateur, chacun avec son propre espace. Le registre contient 3 524 écoles et jardins d’enfants répartis dans 5 414 localités, importés du registre public du ministère de l’Éducation et des Sciences, sans perdre un seul enregistrement existant. 15 métiers, 63 tests, 603 questions. L’enseignant inscrit et paie pour toute la classe en une seule fois. Chaque participant reçoit un code personnel, et toute personne ayant passé la finale reçoit un diplôme PDF avec QR code, vérifiable publiquement sans afficher le nom de l’enfant.
Le moteur de tests prend en charge un minuteur, les questions fermées et ouvertes, les images et les symboles mathématiques dans les questions et les réponses, la vidéo comme énoncé et un mot de passe pour chaque manche. La page d’accueil affiche un véritable globe terrestre en rotation réalisé avec three.js, une carte des compétitions actives par région et des billets animés, que l’administrateur peut réorganiser lui-même.
Puis est arrivée la demande la plus difficile. Les leçons de l’olympiade sont des vidéos, et le client voulait pouvoir les monter lui-même, directement dans le panneau d’administration, comme dans CapCut ou Filmora. Pas seulement importer et couper, mais réaliser un montage complet. Nous l’avons fait.
Le studio vidéo fonctionne dans le navigateur, sans logiciel à installer. Les vidéos, les images et la musique se glissent dans la timeline. Le clip peut être coupé, accéléré, mis en sourdine, recoloré et recadré. Entre deux clips, 13 types de transitions sont disponibles. Les sous-titres utilisent six polices, avec des animations d’entrée et de sortie, tandis que les stickers et les incrustations d’image peuvent occuper jusqu’à huit pistes superposées. Il est possible d’enregistrer depuis la caméra et le microphone directement dans le projet, avec quatre formats d’image, dont le 9:16 pour téléphone, une fonction d’annulation, des raccourcis clavier et une sauvegarde automatique.
Les questions du test apparaissent comme des marqueurs directement sur la timeline. À l’emplacement du marqueur, la vidéo s’arrête et l’enfant répond. Si vous déplacez un clip, les questions se déplacent avec lui. Un bouton permet d’exporter la vidéo terminée et de l’ajouter au test avec les questions.
L’export produit une véritable vidéo, assemblée sur le serveur avec FFmpeg, et non un enregistrement d’écran. Le serveur dispose de deux cœurs et de 2 GB de mémoire, tandis que les leçons durent environ 35 minutes en 1080p. Nous avons donc divisé l’assemblage en trois étapes : d’abord le son, puis chaque clip et chaque transition séparément, et enfin l’ensemble avec les sous-titres. Une vidéo de deux minutes en Full HD est exportée en environ trois minutes avec 624 MB de mémoire. L’aperçu dans le navigateur et le fichier exporté sont calculés par la même fonction : ainsi, un sous-titre qui apparaît à 3,2 secondes apparaît également à 3,2 secondes dans le fichier.