Produits que nous exploitons

HamPrep

Tout pour l’examen de base de radioamateur canadien : la banque de questions officielle sous forme d’application qui fonctionne hors ligne, un aide-mémoire de formules, une page d’étude pour chaque question, et une analytique en direct du registre des indicatifs du Canada — cinq surfaces sur un seul Cloudflare Worker.

La page d’accueil de HamPrep : préparation gratuite à l’examen de base de radioamateur canadien avec les questions officielles d’ISDE et un décompte en direct des indicatifs canadiens enregistrés.

Le déclic

Nous avons nous-mêmes préparé l’examen de base. La matière méritait un meilleur logiciel.

HamPrep existe parce que nous avons passé cet examen. Le régulateur du Canada publie la banque de questions au complet — les 984 questions dans lesquelles puise le vrai examen — mais il les publie sous forme de fichier de données brut, et étudier à partir d’un fichier de données brut est pénible. Alors nous avons transformé le tout en logiciel : les questions, les explications pour chaque réponse, les formules, et, au bout du compte, le registre national des indicatifs lui-même.

Ce que nous avons bâti

Cinq surfaces publiques qui donnent l’impression d’un seul produit.

L’application d’examen est le cœur : installable, fonctionnelle hors ligne, la progression conservée sur votre appareil (la connexion la synchronise, mais n’est jamais requise). Trois modes correspondent à la façon dont les gens apprennent réellement — Apprendre montre chaque réponse avec un « pourquoi ? » pour chaque mauvaise option ; Pratiquer constitue des séries adaptatives qui priorisent les questions jamais vues, puis celles que vous avez ratées, puis vos points faibles ; et l’Examen blanc, c’est 100 questions en 60 minutes selon les vrais seuils de réussite, avec un score de préparation qui traite les catégories intactes comme le pire des cas plutôt que de vous flatter.

Autour : des pages d’étude — chaque question, réponse et explication sous forme de page rapide et indexable, bâtie à partir des mêmes données que l’application ; un aide-mémoire de formules rendu avec KaTeX ; des pages vitrines qui n’embarquent aucun JavaScript ; et des statistiques d’indicatifs — une analytique en direct du registre de radioamateur du Canada, du portrait des qualifications aux palmarès par province, jusqu’à savoir si l’indicatif personnalisé que vous voulez est encore libre.

HamPrep sur un téléphone : préparation gratuite à l’examen de base canadien avec les questions officielles d’ISDE.
hamprep.ca sur le téléphone où il s’installe

Comment ça fonctionne

Un Worker, un déploiement. Trois surfaces sont prégénérées à la construction, deux se rendent en direct.

hamprep.cacinq surfaces · un Cloudflare Worker · un déploiementPages vitrinesprégénérées · zéro JSAide-mémoirechaque formule, prégénéréePages d’étudeles 984 questions, indexablesApplication d’exameninstallable · hors ligne ·progression sur l’appareilStatistiques d’indicatifsanalytique en direct duregistre canadien de radioamateurles boîtes pleines sont prégénérées à la construction ;les encadrées se rendent en direct, même WorkerBanque de questions d’ISDE984 questions officielles,versionnées en JSONun fichier,deux lecteursIngestion quotidienne07:00 UTC : le registre desindicatifs, récupéré et comparéévénementssignés
Cinq surfaces, un Worker, un déploiement. La banque de questions est un seul fichier JSON versionné, lu à la fois par l’application hors ligne et par une centaine de pages d’étude indexables — les deux ne peuvent jamais diverger. Le volet statistiques est alimenté par une ingestion quotidienne et signée du registre officiel.

La consolidation a été la décision fondatrice — le tout premier commit fusionne en une seule application, sur un seul Cloudflare Worker, ce qui était auparavant des projets distincts. Les surfaces statiques sont prégénérées à la construction et servies depuis la périphérie ; l’application et les statistiques se rendent en direct depuis le même Worker, appuyées par deux bases de données (données d’étude et données du registre) et un seul cache. Un dépôt, un pipeline, un déploiement — le fardeau d’exploitation de cinq produits pour le prix d’un.

Le nœud du problème : se fier à une source de données bruitée

Le vidage officiel du registre perd parfois des enregistrements pendant une journée. Annoncer les libérations naïvement crierait au loup chaque semaine.

Le volet statistiques compare le vidage officiel du registre chaque matin pour détecter les nouvelles licences et les indicatifs libérés. Le hic : le vidage laisse parfois tomber des enregistrements qui réapparaissent le lendemain. Un naïf « absent aujourd’hui signifie libéré » émettrait de fausses libérations à chaque hoquet — et une fonction de disponibilité d’indicatifs bâtie sur de fausses libérations est pire que rien.

jour 1jour 2jour 3une mauvaisejournéeprésentabsentsérie 1de retourremise à zérorien d’annoncéun simple mauvais vidageune vraielibérationabsentsérie 1absentsérie 2absentsérie 3libéréconfirmé à la 3e absenceet si le vidage revient inchangé (une copie en cache), aucune série n’avance —répéter le fichier d’hier n’est pas une nouvelle preuve.
Un indicatif doit être absent trois exécutions quotidiennes d’affilée avant de compter comme libéré ; une seule réapparition remet la série à zéro. Testé exactement ainsi : « émet un événement de libération à la troisième absence consécutive ».

Décisions à souligner

  • L’examen blanc est assemblé comme le vrai. Une question tirée de chacun des 100 sous-thèmes — exactement comme le régulateur bâtit le vrai examen. Nous avons rejeté l’échantillonnage proportionnel parce qu’il sous-pondère la section de la réglementation et peut tirer deux fois un même sous-thème, ce que le vrai examen ne fait jamais.
  • Une seule source de vérité pour la banque. Le même JSON versionné alimente l’application hors ligne et chaque page d’étude indexable. Il n’y a pas de deuxième copie qui puisse devenir périmée.
  • Progression locale d’abord. Votre historique d’étude vit sur votre appareil et fonctionne hors ligne ; la connexion le synchronise de façon idempotente. L’application ne prend jamais votre progression en otage derrière un compte.
  • Des statistiques qui totalisent 100 %. Les opérateurs détiennent des qualifications qui se chevauchent, alors les statistiques classent chacun selon sa plus élevée — un choix d’exactitude délibéré plutôt que de compter des indicateurs qui se chevauchent et de dénombrer discrètement les gens en double.
  • Des données officielles de bout en bout. La banque de questions et le registre proviennent tous deux directement du régulateur. Rien n’est inventé, et l’ingestion s’identifie honnêtement au moyen d’un agent utilisateur descriptif.

Réalisé avec

  • Astro
  • React
  • Cloudflare Workers

C’est ainsi que nous exploitons nos propres produits

Les mêmes standards s’appliquent au travail client — des projets à portée fixe ou des blocs prépayés d’heures d’ingénierie infonuagique, réseau et sécurité.