Plateforme d’emploi
Un marché où l’embauche et le freelance suivent le même parcours en quatre étapes.
Next.js · React · TypeScript · PostgreSQL · Prisma · Neon
Lire toute l’histoireTous devant le même sujet, tous sous la même horloge
Des examens que l’établissement gère seul, de la banque de questions aux résultats.
Deux ans après la livraison de leur système d’administration, le même institut technique est revenu avec une nouvelle demande : examiner les étudiants de dernière année dans plusieurs modules, corriger toutes les copies, puis les classer pour de vrais prix. Sur papier, c’est lent à organiser, plus lent à corriger, et le classement reste attaquable.
Un classement qui distribue des prix ne tient que si chaque étudiant a passé le même examen dans les mêmes conditions. C’est là la difficulté. Une horloge qui tourne chez l’étudiant, une copie qu’on peut rouvrir, une question modifiée après la correction qui déplace une ancienne note : une seule de ces failles rend tout le classement contestable.
Je n’ai rien confié à ce que la main de l’étudiant peut atteindre. Le serveur fixe l’échéance dès que la tentative commence, le compte à rebours à l’écran n’en est que l’affichage, et chaque sauvegarde est vérifiée par le serveur avant d’être acceptée. Les réponses s’enregistrent au fur et à mesure : l’ordinateur qui s’éteint en pleine copie coûte le trajet jusqu’au surveillant, pas le travail.
Chaque copie garde sa propre version des questions et des clés de correction, telles qu’elles ont été remises à l’étudiant. Corriger une question au semestre suivant ne déplace donc aucune note donnée ce semestre. L’ordre des questions et des choix naît lui-même d’une graine conservée : la copie exacte vue par un étudiant se reconstruit des mois plus tard en cas de recours.
L’autre moitié du travail consistait à me rendre inutile. Programmes, niveaux, modules, groupes, banques de questions et barèmes sont créés par le personnel, sur ses propres écrans. C’est pour cela que le système a continué de grandir après la remise.
L’échéance est calculée et enregistrée sur le serveur dès le départ de la tentative, et chaque sauvegarde s’y compare. Une machine en retard d’une heure, par accident ou exprès, n’achète pas une minute de plus.
Chaque tentative conserve sa version des questions et des clés de correction, telles que l’étudiant les a vues. Modifier la banque plus tard ne touche aucune note passée, et la copie exacte se reconstruit pour chaque recours.
Choix multiple, vrai ou faux, nombres avec marge de tolérance, réponses courtes aux graphies admises, textes à trous où chaque blanc a son poids, appariements, remises en ordre, et des essais confiés à un correcteur humain. Le crédit partiel s’applique là où il a un sens.
Qui a commencé, qui approche de son échéance, qui ne répond plus : le surveillant a tout sous les yeux pendant la séance. Il accorde du temps ou annule une tentative en plein examen, et chaque geste est consigné avec son auteur et sa raison.
Sur vingt avec mention, en lettres, en pourcentage, ou admis et ajourné. Le barème est une table que le personnel modifie lui-même, et le système refuse toute table à trou ou à chevauchement.
Après la correction, chaque question reçoit un indice de difficulté et une mesure de sa capacité à distinguer les bons étudiants, et chaque mauvaise option est analysée pour savoir si elle a trompé quelqu’un. Une question que les meilleurs ont tous ratée a souvent une clé fausse.
Sur le serveur ; le navigateur n’affiche qu’un décompte.
Une machine de salle d’examen peut retarder d’une heure, par accident ou exprès. Si le navigateur tenait l’horloge, changer l’heure serait le chemin le plus court vers du temps en plus. Le serveur fixe l’échéance une fois et y mesure chaque sauvegarde : tout le monde a la même réponse à la question du temps qui reste.
Sur une mauvaise connexion, le décompte peut traîner d’une seconde ou deux, et perdre sa session, c’est perdre ce temps. C’est la règle de l’examen papier, et il faut pourtant l’expliquer le jour venu.
Une seule tentative, et une copie remise ne se rouvre pas.
Le classement distribue de vrais prix, et une seconde tentative est un autre examen. Dès qu’un seul étudiant en obtient une, le classement compare deux choses différentes. Toutes les autres règles pouvaient se discuter ; celle-ci était le produit même.
Un vrai accident, une coupure de courant ou un navigateur qui plante, ne se répare pas en recommençant discrètement. Quelqu’un doit annuler la tentative au registre, avec une raison écrite. C’est plus lent, et personne n’aime cela ce jour-là.
L’institut. Programmes, niveaux, groupes et questions restent aux mains de son personnel.
Un système où chaque changement exige un appel au développeur cesse d’être utilisé la semaine où le développeur est occupé. Donner au personnel le moyen de bâtir sa structure a coûté bien plus cher, mais c’est la seule version de ce système qui vive après moi.
Beaucoup plus à construire, et plus d’occasions d’erreur, puisque le personnel peut désormais créer une structure absurde. L’autre voie comptait moins de pièges, et elle aurait eu besoin de moi pour toujours.
Rien ne bouge. Modifier une question déjà passée en crée une nouvelle version, et l’ancienne reste telle que les copies ont été corrigées.
Corriger une question ce semestre ne doit pas déplacer une note du semestre passé. Sans cette règle, retoucher la banque devient une réécriture muette de l’histoire, et le premier à le voir est un étudiant dont le résultat a changé tout seul.
Une même question existe alors en plusieurs versions dans la base. Cela coûte du stockage, et l’analyse d’une question devient aussi une affaire de versions.
Ils avaient déjà travaillé avec moi, et nous sommes partis de l’examen plutôt que d’un cahier des charges : quels modules, combien d’étudiants, ce que les notes décident. Que le classement porte des prix est apparu tôt, et c’est devenu la mesure de toutes les règles suivantes.
J’ai dessiné le système autour de deux instants qui doivent tenir : celui où la copie parvient à l’étudiant, et celui où la note est donnée. L’horloge chez le serveur, la copie qui garde sa version, et tout le reste ordonné derrière ces deux instants.
Je l’ai construit dans l’ordre où l’institut allait s’en servir : la banque de questions d’abord, pour que le personnel commence à écrire pendant que l’écran d’examen se bâtissait, et un module a fait toute la route avant les autres.
Les examens ont eu lieu pour de vrai, et le système tourne encore. Une première séance réelle révèle rarement des pannes : plutôt les réglages que nul ne devine d’avance, comme ce qu’un étudiant peut voir après les résultats.
Livrée en 2025 et toujours en service ; l’institut a ajouté ses propres modules depuis, sans jamais devoir me demander d’abord, et c’est la partie qui compte. J’ai ensuite mené le même système plus loin : une plateforme où chaque institut ou université ouvre son compte et gère en entier ses programmes, ses groupes, ses banques de questions et ses examens, chaque établissement restant isolé des autres.
Les revenus et la croissance appartiennent au client. Je ne publie aucun chiffre que je n’ai pas mesuré.
Un marché où l’embauche et le freelance suivent le même parcours en quatre étapes.
Next.js · React · TypeScript · PostgreSQL · Prisma · Neon
Lire toute l’histoireInstituts de beauté : WhatsApp en façade, un vrai système de réservation derrière.
Next.js · TypeScript · Prisma · Neon · Better Auth · WhatsApp Business API
Lire toute l’histoireUne idée, pas de cofondateur technique, pas d’étape suivante évidente. C’est le point de départ habituel.
Parlez-moi de votre idée