AlgoQuest – Plateforme éducative d’apprentissage algorithmique
AlgoQuest est une application mobile destinée à l’apprentissage de l’algorithmique de manière interactive. Le projet permet aux apprenants de s’entraîner à la logique et à la programmation à travers des exercices d’algorithmes à résoudre directement dans un éditeur de code intégré. Les administrateurs peuvent créer, modifier et évaluer des exercices, suivre la progression des utilisateurs et analyser leurs résultats.
Chaque utilisateur peut visualiser ses résolutions passées, consulter son historique de tentatives et suivre sa progression globale. Le système vérifie automatiquement la validité du code soumis en comparant les sorties attendues et réelles.
Technologies et outils
- Backend : Java 17, Spring Boot 3, Spring Security, JWT, Maven
- API : Architecture REST, validation des algorithmes soumis, gestion des utilisateurs et exercices
- Base de données : MongoDB (avec scripts d’initialisation et indexation optimisée)
- Infrastructure : Docker & Docker Compose (API, MongoDB, sandbox Java d’exécution)
- Frontend mobile : React Native (Expo), AsyncStorage, SQLite (mode hors ligne)
- Tests et qualité : JUnit 5, Mockito, JaCoCo (couverture), Checkstyle (analyse statique)
- CI/CD : GitHub Actions (build + tests) et Codecov (rapport de couverture)
- Gestion de projet : Jira (sprints, user stories) & Confluence (documentation technique)
Compétences et apprentissages clés
- Conception et implémentation d’une API REST complète avec gestion des rôles (admin/utilisateur)
- Mise en place d’un système d’exécution de code sécurisé via sandbox Java Dockerisée
- Gestion et validation d’exercices d’algorithmes avec comparaison des sorties attendues
- Structuration du projet en microservices containerisés (API, base, sandbox)
- Implémentation d’une authentification stateless avec JWT
- Intégration continue avec GitHub Actions et suivi qualité via Codecov et Checkstyle
- Documentation technique centralisée sous Confluence, suivi agile via Jira