Skip to content

Latest commit

 

History

142 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI Code Mentor

Projet réalisé dans le cadre du Master Informatique.

Binôme : RABETRANO_SIDI

Technologies imposées :

  • Backend : Quarkus
  • Persistance : Jakarta Persistence API (JPA)
  • Base de données : DuckDB
  • Frontend : React
  • UI : React UI
  • Génération d'exercices : LLM local (Qwen 2.5 Coder)

Présentation

AI Code Mentor est une plateforme pédagogique permettant à un enseignant de générer automatiquement des exercices Java à l'aide d'un modèle de langage local.

L'application permet :

  • la création d'exercices Java
  • la génération automatique du squelette de code
  • la génération d'une solution exemple
  • la génération de tests unitaires JUnit
  • la soumission du code par les étudiants
  • la correction automatique
  • le suivi des soumissions

Le modèle IA fonctionne localement sans dépendance à une API externe.


Architecture

Backend

Technologies :

  • Java 25
  • Quarkus 3.28
  • Hibernate ORM
  • Jakarta Persistence API (JPA)
  • DuckDB

Structure :

src/main/java/fr/umlv/m1

dto/
model/
repository/
services/
rest/

Frontend

Technologies :

  • React 19
  • TypeScript
  • Vite
  • React Router
  • React UI

Structure :

src/

pages/
components/
services/
types/

Base de données

Base embarquée :

DuckDB

Fichier :

test.duckdb

Configuration :

quarkus.datasource.jdbc.url=jdbc:duckdb:./test.duckdb

LLM local

Modèle utilisé :

Qwen2.5-Coder-3B-Instruct

Format :

GGUF

Bibliothèque :

de.kherud:llama:4.2.0

Le modèle est téléchargé automatiquement lors du build Maven.


Lancement du projet

Prérequis

Backend

  • Java 25
  • Maven 3.9+

Frontend

  • Node.js 20+
  • npm

1. Construire le frontend

cd rabetranosidi-frontend

npm install

npm run build

Cela génère :

dist/

2. Copier le frontend compilé

Copier le contenu de :

rabetranosidi-frontend/dist/

vers :

rabetranosidi-backend/src/main/resources/META-INF/resources/

afin que Quarkus serve directement l'application React.


3. Compiler le backend

cd rabetranosidi-backend

mvn clean package

4. Lancer l'application

Mode développement :

mvn quarkus:dev

Mode production :

java -jar target/quarkus-app/quarkus-run.jar

GPU (optionnel)

Le projet peut utiliser CUDA si :

  • une carte NVIDIA est disponible
  • llama.cpp a été compilé avec CUDA
  • la bibliothèque native :
native-libs/libjllama.so

est présente

Sinon le système bascule automatiquement sur le CPU.


Fonctionnalités

Professeur

  • création d'exercices
  • génération IA
  • validation des exercices
  • consultation des soumissions
  • attribution de feedback

Étudiant

  • consultation des exercices
  • soumission du code
  • exécution
  • visualisation des retours

API REST

Les échanges utilisent :

JSON

Les DTO sont définis sous forme de records ou objets dédiés dans :

dto/

Tests

Exécution :

mvn test

Les tests utilisent :

  • JUnit 5
  • Quarkus Test

Auteur

Projet universitaire réalisé par :

  • RABETRANO Haritiana Mathieu
  • SIDI Mouayad

Master Informatique Université Gustave Eiffel

About

Full-stack educational platform (Java/React) integrating a local LLM for automated coding exercise generation via advanced prompt engineering.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages