Synthèse, accueil

Projets

Sparks

La boîte à outils de poche et le compagnon d'examen des apprentis électriciens en Irlande, nés de 25 ans de métier. Une app qui marche sans réseau, calculateurs et toolbox talks compris ; des packs d'examen chiffrés et ouverts sur l'appareil par une licence vérifiée en wasm ; un serveur de licences en Rust ; une vitrine Astro.

clientSvelteKitRustPWA

Rôle
Design, développement, hébergement.
Période
2026
Stack
SvelteKit (PWA), Rust (axum), SQLite, WebAssembly, WebCrypto, Astro
La vitrine sparksireland.ie sur ordinateur : un apprenti mesure un tableau de distribution à la pince ampèremétrique, à côté d'un panneau « Pass your phase exams. Sparks gets you ready. » et des boutons pour ouvrir l'app et voir les tarifs.
La vitrine sparksireland.ie sur ordinateur : un apprenti mesure un tableau de distribution à la pince ampèremétrique, à côté d'un panneau « Pass your phase exams. Sparks gets you ready. » et des boutons pour ouvrir l'app et voir les tarifs.

Le besoin

Sparks vient d’un électricien irlandais qui a vingt-cinq ans de métier. Il voulait réunir dans une seule application la préparation aux examens des phases 2, 4 et 6, les calculs de chantier et le toolbox talk de la semaine. Chaque réponse renvoie à sa clause de l’I.S. 10101, la norme électrique irlandaise.

Les apprentis travaillent en local technique, en gaine ou en sous-sol, où le réseau est intermittent : l’application fonctionne hors ligne. J’ai conçu et développé le produit, du premier commit, fin août 2026, à la mise en production.

À l'usage

La partie gratuite regroupe les calculs courants : chute de tension, choix de section, puissance triphasée, loi d’Ohm. Elle contient aussi les tables de référence (Max Zs, sections de câbles, presse-étoupes SWA, couleurs des conducteurs), cinq questions d’exemple et quatre toolbox talks.

La licence ouvre toute la banque de questions, classée par phase et par module. Chaque question est corrigée et renvoie à la clause ou à la page à relire. Les examens blancs reprennent la durée et le format officiels. En phase 4, la réponse modèle s’affiche une fois que l’apprenti a rédigé la sienne.

Le toolbox talk est le point sécurité de la semaine : une situation de chantier, quelques consignes, des questions pour l’équipe. Chaque participant signe sur le téléphone, et le registre s’exporte en PDF, sur papier ou en CSV.

Le calculateur de chute de tension de l'app Sparks sur téléphone : alimentation, type de circuit, section de câble en mV/A/m, longueur et courant d'emploi, au-dessus des onglets Toolkit, Study, Reference et Settings.
Le calculateur de chute de tension de l'app Sparks sur téléphone : alimentation, type de circuit, section de câble en mV/A/m, longueur et courant d'emploi, au-dessus des onglets Toolkit, Study, Reference et Settings.

Architecture

Le contenu payant est distribué en packs publics, chiffrés en AES-256-GCM ; la licence fournit la clé. À l’activation, l’appareil génère une paire de clés conservée dans le module cryptographique du navigateur. Le serveur renvoie un jeton signé en Ed25519, qui contient les clés des packs chiffrées pour cet appareil.

La vérification du jeton tient dans un seul crate Rust, compilé pour le serveur et, en WebAssembly, pour l’application : les deux appliquent les mêmes règles. Le jeton contient les clés du pack courant, du précédent et du suivant, ce qui garde l’accès ouvert pendant une mise à jour.

Le serveur gère aussi l’administration (rôles, journal d’audit), le paiement Revolut et les e-mails. Chaque déploiement bascule un lien symbolique et revient tout seul à la version précédente si le contrôle de santé échoue.

Un toolbox talk dans l'app Sparks sur téléphone : « Ladders and work at height », une courte scène de chantier sous « Picture this », puis des consignes numérotées.
Un toolbox talk dans l'app Sparks sur téléphone : « Ladders and work at height », une courte scène de chantier sous « Picture this », puis des consignes numérotées.

Décisions

Hors ligne d’abord. L’application tourne entièrement depuis le cache d’un service worker, versionné à chaque build, et se met à jour dès que le réseau revient.

Un modèle de menace explicite. Un contrôle exécuté sur le téléphone peut être contourné par son propriétaire. La protection repose sur le chiffrement : le serveur délivre les clés uniquement aux appareils sous licence.

L’accessibilité bloque le build. L’intégration continue échoue au moindre avertissement d’accessibilité. Axe contrôle chaque écran dans les deux thèmes, conformes WCAG 2.2 AA. Un rapport de biais signale les questions dont la bonne réponse se devine à sa position ou à sa longueur.

Des PDF produits sur l’appareil. J’ai écrit le générateur de PDF en TypeScript : le registre signé est créé sur le téléphone, hors ligne.

Aujourd'hui

Le site vitrine est en ligne sur sparksireland.ie, l’application sur app.sparksireland.ie, accessible à tous. Le client gère le contenu depuis l’administration, et chaque nouvelle version arrive sur les appareils au rafraîchissement suivant.

Un projet en tête ? Parlons-en