Skip to content

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

Latest commit

 

History

142 Commits

Folders and files

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