Inspiration

Dans de nombreux établissements d'enseignement supérieur, la gestion des présences repose encore sur des cahiers de pointage papier ou des systèmes manuels, lents et faciles à contourner. Les directeurs n'ont aucune visibilité en temps réel sur l'assiduité, et les parents restent sans information sur la présence de leur enfant. MJN-SCAN est né de ce constat : moderniser le contrôle d'accès des grandes écoles et instituts grâce au QR Code, avec fiabilité, sécurité et simplicité.

What it does

MJN-SCAN est un système complet de contrôle d'accès par QR Code. Un simple scan d'un badge ou d'un pass numérique suffit pour identifier un étudiant en moins de 400 millisecondes, enregistrer son entrée ou sa sortie, et mettre à jour les statistiques en temps réel. Il détecte automatiquement les retards et absences selon l'emploi du temps, alerte les parents par WhatsApp/SMS, propose un portail parent, un mode kiosque avec synthèse vocale, et des tableaux de bord analytiques complets.

How I built it

  • Front-end : React + TypeScript + Vite, avec plus de 30 composants modulaires.
  • Back-end : Node.js + Express, 40+ endpoints API sécurisés.
  • Données : persistance JSON avec synchronisation temps réel par Server-Sent Events.
  • Sécurité : authentification JWT (access + refresh), hachage bcrypt, 2FA TOTP, journal d'audit, contrôle des rôles admin/agent.
  • Mobile : Progressive Web App installable et utilisable hors ligne.
  • Déploiement : conteneurisation Docker pour une installation en quelques commandes.

Challenges I ran into

  • Sessions et expiration des tokens : implémentation d'un système de refresh token sécurisé avec rotation.
  • Synchronisation multi-postes : garantir la diffusion instantanée d'un scan sur tous les écrans connectés.
  • Synthèse vocale : fiabiliser les annonces vocales selon les navigateurs et les voix disponibles.
  • Performance : optimiser pour dépasser 380 scans par seconde en test.

Accomplishments that I'm proud of

  • Un système complet et autonome, déployable sans dépendance cloud obligatoire.
  • 56 tests de sécurité validés couvrant l'authentification, les rôles et les accès.
  • Une interface en français, pensée pour les réalités des campus africains.

What I learned

  • Architecturer une application full-stack TypeScript de bout en bout.
  • Implémenter une authentification robuste (JWT, bcrypt, 2FA) et un journal d'audit.
  • Gérer la synchronisation en temps réel et le mode hors ligne (PWA).
  • Concevoir des endpoints API sécurisés et maintenables.

What's next for MJN-SCAN

  • Synchronisation cloud avancée multi-campus et multi-postes.
  • Module intelligent de statistiques prédictives sur l'assiduité.
  • Intégration de paiement et de gestion administrative (scolarité).
  • Multi-langue (anglais, portugais) et signature électronique des rapports.

MJN-SCAN — Fait au Congo, pour l'Afrique, pensé pour le monde.

Built With

Share this project:

Updates