Coup de Cœur

Slogan :
Un ENT pour centraliser, OctoCards pour mémoriser.

Les établissements scolaires utilisent des ENT (Espaces Numériques de Travail) comme Pronote pour centraliser la vie scolaire. Pourtant, les outils de révision restent dispersés, extérieurs à ces plateformes, et souvent peu adaptés aux besoins des élèves. Une école de plus de 1 000 élèves utilise déjà une application mère développée en interne, fonctionnelle et intégrée au quotidien des élèves et enseignants.


L'objectif est de construire un écosystème d'applications satellites gravitant autour de cette plateforme centrale. OctoCards est la première de ces applications : elle permet de générer automatiquement des flashcards à partir de cours PDF grâce à une IA locale, directement accessible depuis l'ENT. À terme, chaque application satellite enrichit la plateforme sans que l'élève ait besoin de quitter son environnement habituel.


OctoCards est structurée en deux parties : un serveur Node.js/Express avec Prisma qui expose une API REST, et une interface React/TypeScript avec Tailwind CSS. L'utilisateur dépose un PDF depuis l'ENT ; le serveur extrait le texte avec pdf-parse, le transmet au modèle Mistral via Ollama (IA locale), et génère des paires question/réponse. Les flashcards sont sauvegardées et associées à un algorithme de répétition espacée (SM-2) pour optimiser les révisions. L'authentification JWT assure la cohérence avec le système de comptes de la plateforme centrale.

L'application est pleinement fonctionnelle : upload de PDF, génération par IA en 1 à 2 minutes, sessions de révision avec planification automatique. Elle est intégrée à la plateforme mère utilisée quotidiennement par les 1 000 élèves de l'établissement, ce qui lui confère un déploiement réel dès le premier jour. La confidentialité est garantie : aucune donnée n'est envoyée à un service externe.

Ce projet m'a appris à concevoir une application pensée pour s'intégrer dans un écosystème plus large, pas seulement à fonctionner de manière isolée. J'ai maîtrisé l'intégration d'un modèle de langage local, la conception d'API REST avec authentification, la gestion d'uploads asynchrones, et l'algorithme SM-2 de répétition espacée. J'ai aussi approfondi React, le routing, et la conception d'interfaces mobiles-first.