Journal de Classe
Plateforme de suivi scolaire pour l’enseignement primaire
- Projet personnel
- Projet privé

Application de suivi destinée aux écoles primaires en Belgique francophone : classes, élèves, communication avec les familles. C’est le projet où toute la chaîne est visible d’un bout à l’autre — schéma versionné, API authentifiée, interface, et un démarrage en une seule commande.
Le besoin de départ
Le suivi d’une classe se disperse entre carnets papier, courriels et documents partagés. Les informations existent, mais personne ne les a toutes au même endroit — surtout pas les parents.
- Période
- 2026
- Rôle
- Développement full-stack et mise en place de l’infrastructure
- Technologies
- SvelteKitTailwind CSSNode.jsExpressMariaDBJWTDockerCaddy
Ce que ça fait
Principales fonctionnalités
- Gestion des classes et des élèves
- Comptes distincts pour l’équipe éducative et les familles
- Suivi individuel par élève
- Envoi de documents
- Base et données de démarrage recréées en une commande
Ma contribution
Projet personnel mené seul : modélisation, API REST, interface et infrastructure. C’est là que j’ai mis en place l’essentiel de mes réflexes de sécurité — jetons, hachage, validation en entrée de route, limitation de débit.
Aperçu
En images
Ce qui a résisté
Difficultés techniques
Les problèmes qui ont demandé une décision, et ce que j’ai tranché.
Problème 01
Une application scolaire manipule des données d’enfants : l’authentification ne pouvait pas être approximative.
Solution
Jetons JWT pour les sessions, mots de passe hachés avec bcrypt, validation systématique en entrée de route via express-validator, en-têtes de sécurité posés par helmet et limitation de débit sur les routes sensibles. Chaque règle est appliquée à la frontière de l’API, jamais dans la couche métier.
Problème 02
Le projet devait pouvoir démarrer sur une autre machine sans une demi-journée de configuration.
Solution
MariaDB tourne dans Docker Compose, et ses scripts d’initialisation SQL sont versionnés avec le code. Un `docker compose up` crée la base, les tables et les données de départ. Le schéma vit dans le dépôt, au même titre que le code.