🔍 QueryCraft

Outil pédagogique d'apprentissage du langageSQL
Version {{ version }} | 🖥️ {{ system_info.system }} {{ system_info.release }} | 💻 {{ system_info.machine }} | 🐍 Python {{ system_info.python_version }}

📖 À propos

QueryCraft est un outil pédagogique innovant conçu pour l'enseignement et l'apprentissage du langage SQL, en particulier le langage de manipulation des données (DML). Il permet aux étudiants de visualiser et de comprendre l'exécution pas à pas des requêtes basées sur l'opérateur SELECT, décomposant chaque étape pour une meilleure compréhension des opérateurs impliqués.

L'application propose une interface web moderne permettant d'exécuter des requêtes SQL de manière interactive, avec un système de correction automatique et d'aide par intelligence artificielle générative.

Pour une utilisation plus générale, il est possible d'utiliser SQLSandbox (http://desmontils.net/SQLSandbox/).

📦 SQLSandbox

👨‍🏫 Auteurs

👨🏻‍💻

Emmanuel Desmontils (développement et tests)

Nantes Université

Laboratoire des Sciences du Numérique de Nantes (LS2N) - Équipe VELO

Centre de Recherche en Enseignement de Nantes (CREN)

📧 emmanuel.desmontils@univ-nantes.fr

👩🏻‍💻

Laura Monceaux (tests fonctionnels)

Nantes Université

Laboratoire des Sciences du Numérique de Nantes (LS2N) - Équipe TALN

📧 laura.monceaux@univ-nantes.fr

pinkycow

🛠️ Technologies utilisées

🐍
Python
3.11.x
🌐
Flask
3.0+
🗄️
SQLite
Support complet
🐘
PostgreSQL
Support complet
🐬
MySQL
Support complet
🤖
IA (LLM)
Ollama, LM Studio, OpenAI, Google

Bibliothèques principales :

  • sqlglot - Analyse et transformation de requêtes SQL
  • SQLAlchemy - ORM et introspection de bases de données
  • psycopg2 - Connecteur PostgreSQL
  • mysql-connector-python - Connecteur MySQL
  • colorama - Colorisation du terminal
  • markdown - Conversion Markdown vers HTML
  • keyboard - Gestion des raccourcis clavier
  • jinja2 - Génération de templates HTML
  • argparse - Gestion des arguments en ligne de commande
  • tincan - Génération de rapports xAPI
  • gunicorn - Serveur WSGI pour le déploiement
  • openai - Intégration avec les modèles OpenAI
  • ollama - Intégration avec les modèles Ollama
  • google-generativeai - Intégration avec les modèles Google
  • lmstudio - Intégration avec les modèles LM Studio

✨ Fonctionnalités principales

  • 🔍 Exécution pas à pas - Visualisation détaillée de chaque étape d'une requête SQL (ordre logique : FROM, WHERE, GROUP BY, HAVING, SELECT, ORDER BY, LIMIT)
  • 📊 Comparaison automatique - Vérification des résultats avec correction automatique quand c'est possible
  • 🤖 Aide par IA générative - Explications contextuelles des erreurs et suggestions de correction
  • 📚 Gestion d'exercices - Création et organisation d'exercices pédagogiques
  • 🎨 Interface moderne - Design responsive et intuitif
  • 🗄️ Multi-SGBD - Support de SQLite, PostgreSQL et MySQL
  • ⚙️ Configuration flexible - Personnalisation complète via interface web

📜 Licence

Licence Open Source

QueryCraft est un logiciel libre développé à des fins pédagogiques et de recherche. Il est distribué dans l'espoir qu'il sera utile pour l'enseignement et l'apprentissage du SQL au lycée et en premier cycle universitaire.

© 2024-2026 Emmanuel Desmontils, Nantes Université

🤖 Développement assisté par IA

🤖

Claude Code

Assistant IA par Anthropic

Le développement de l'interface web de QueryCraft a bénéficié de l'assistance de Claude Code, l'outil d'assistance au développement d'Anthropic.

Claude Code a contribué à la création de l'interface web moderne et à l'amélioration de l'expérience utilisateur.

🔗 En savoir plus sur Claude Code

🙏 Remerciements

Merci à tous les étudiants et enseignants qui ont contribué à l'amélioration de QueryCraft par leurs retours et suggestions, en particulier à :

  • Wiktoria SLIWINSKA, étudiante ERASMUS en licence Informatique à l'Université de Nantes en 2023-2024, pour son aide à la conception du POC initial.
  • Baptiste GIRARD, étudiant en licence Informatique à l'Université de Nantes en 2024-2025, pour son aide à la fiabilisation de l'outil.

Un remerciement particulier au Laboratoire LS2N et à Nantes Université pour leur soutien dans le développement de cet outil pédagogique.