Skip to content

MathieuJaunet/AICodeMentor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AICodeMentor : L'IA au service de l'enseignement du code


Fonctionnalités Majeures

Espace Enseignant (Génération IA)

  • Prompt-to-Exercise : Génération complète (énoncé, signature, solution, tests JUnit 5) via Qwen 2.5.
  • Classification Intelligente : Détermination automatique du niveau (L1 à M2) et des concepts clés (Boucles, Récursivité, POO).
  • Validation & Itération : Système de révision des propositions de l'IA avant publication.

Espace Étudiant (Apprentissage)

  • Éditeur Intégré : Intégration de Monaco Editor (moteur de VS Code) pour une expérience de dev native.
  • Feedback Immédiat : Exécution des tests unitaires en arrière-plan et retour d'erreur masqué.
  • Indices Dynamiques : En cas d'échec, un LLM analyse le code pour fournir des indices personnalisés sans donner la solution.

Architecture & Stack Technique

Ce projet utilise les dernières avancées de l'écosystème Java et Web :

  • Backend : Java 25 & Spring Boot 3.5.5 (Spring 6).
    • Virtual Threads : Optimisation des performances serveur via les threads virtuels (Project Loom).
    • Data : Persistance via SQLite JDBC (Base embarquée) et accès direct via JDBC.
    • API REST : Utilisation de Java Records pour une sérialisation immuable avec Jackson 2.20.
  • Frontend : Angular 20.2 & Bootstrap 5.3.
    • Intégration de l'éditeur de code Monaco.
  • Qualité : Analyse statique de code via SpotBugs 4.9.
  • LLM : Intégration locale/API de Qwen Coder 2.5.

Automatisation & DevOps

Le projet utilise un cycle de build Maven hautement automatisé pour garantir une installation "Zero Configuration" :

  • IA-as-a-Resource : Téléchargement automatique du modèle LLM (Qwen 2.5 Coder 7B) depuis HuggingFace avec validation d'intégrité SHA-256 durant la phase de génération des ressources.
  • Conteneurisation Native : Build automatique de l'image Docker java-sandbox lors de l'initialisation, garantissant que l'environnement d'exécution des tests étudiants est toujours prêt et isolé.
  • Compilation Fullstack : Pipeline unifié utilisant frontend-maven-plugin pour builder l'application Angular 20 et l'intégrer nativement dans le serveur Spring Boot.
  • Qualité de Code : Analyse statique stricte avec SpotBugs et compilation Java 25 avec flags --enable-preview.

Focus Architecture : Sécurité & Performance

  • IA Locale : Intégration de Qwen 2.5 via des liaisons natives (JNI/Llama.cpp), permettant une génération d'exercices sans dépendance à une API tierce coûteuse ou lente.
  • Sandbox d'Exécution : Utilisation de Docker pour isoler l'exécution du code soumis par les étudiants, garantissant la sécurité du système hôte contre l'exécution de code malveillant.
  • Haute Disponibilité : Implémentation des Virtual Threads (Java 25) pour gérer les entrées/sorties bloquantes (appels LLM, accès DB SQLite, exécution Docker) sans saturer le pool de threads serveur.

Spécificités de l'implémentation

  • Build Unique : Monorepo géré par Maven regroupant le Front et le Back.
  • Zéro CORS : Configuration optimisée pour servir le frontend et l'API depuis la même origine.

Installation & Lancement Rapide

Grâce à l'automatisation Maven, le projet est prêt en deux étapes :

  1. Prérequis :

JDK 25 (avec support des preview features). Docker installé et démarré (pour la sandbox d'exécution). Internet (pour le téléchargement initial du modèle LLM).

  1. Lancer l'application :
# Clone du projet
git clone https://github.com/ton-pseudo/AICodeMentor.git
cd AICodeMentor

# Build complet (Front + Back + Download LLM + Docker image)
./mvnw clean install

# Lancement du serveur
./mvnw spring-boot:run

L'application sera accessible sur http://localhost:8080.

Développé avec IntelliJ IDEA - Projet universitaire de M1 Développeurs : Mathieu Jaunet & Kevin Thai

About

Plateforme pédagogique pilotée par l'IA (Qwen 2.5) permettant la génération automatisée d'exercices de programmation, tests JUnit et correction dynamique pour étudiants

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors