J'ai transformé l'apprentissage du SQL en un RPG dans le Terminal
Soyons honnêtes : apprendre le SQL via des tutoriels PDF ou des cours théoriques peut vite devenir rébarbatif.
La plupart des plateformes interactives ont souvent deux défauts majeurs :
- Elles s'arrêtent aux requêtes simples (
SELECT,WHERE,JOINbasiques). - Dès qu'on souhaite manipuler des déclencheurs (Triggers), des Transactions ACID ou des Procédures Stockées, il devient nécessaire d'installer et de configurer un serveur de base de données complet en local.
Pour proposer une alternative ludique et prête à l'emploi, j'ai développé SQL Master : une aventure interactive gamifiée exécutable directement dans un terminal Node.js.
Le concept
L'objectif principal est de réunir les mécaniques d'un jeu de rôle rétro et un cursus complet d'apprentissage du SQL, sans nécessiter de conteneur Docker ni de configuration externe.
Fonctionnalités principales
1. Académie SQL avec démonstrations en direct
L'académie est accessible à tout moment, indépendamment de la progression :
-
Schémas conceptuels clairs : visualisation des mécanismes fondamentaux (différence entre
INNER JOINetLEFT JOIN, ordre d'exécution logique deGROUP BYetHAVING). - Démonstrations interactives immédiates : exécution de la requête en direct pour observer les résultats tabulaires avant de passer à la pratique.
-
Accès rapide au cours : commande dédiée
:coursdisponible en cours d'exercice en cas d'hésitation.
2. Moteur d'exécution avancé (35 Niveaux)
Contrairement aux environnements d'initiation limités, l'outil embarque un moteur en mémoire couplé à un transpileur gérant les concepts avancés :
-
Transactions et concurrence : prise en charge de
BEGIN TRANSACTION,COMMITetROLLBACKpour simuler des opérations bancaires atomiques. -
Indexation et structures virtuelles : création de vues avec
CREATE VIEWet indexation avecCREATE INDEX. -
Automatisation via déclencheurs : implémentation de tables d'audit et de gestion des stocks avec
CREATE TRIGGER AFTER INSERTouUPDATE. -
SQL analytique : fonctions de fenêtrage (
ROW_NUMBER(),LAG() OVER (...)) et requêtes récursives (WITH RECURSIVE). -
Procédures stockées : définition et exécution de blocs procéduraux via
CREATE PROCEDUREet l'instructionCALL.
3. Mécaniques de gamification
- Progression par rangs : évolution progressive du rang F (Stagiaire Data) jusqu'au rang S.
- Épreuves de production (Boss) : scénarios d'incidents critiques en production tous les 5 niveaux avec attribution de récompenses doublées.
- Séries de victoires : multiplicateurs d'expérience en cas de requêtes valides dès la première tentative.
- Personnalisation visuelle : boutique intégrée permettant de débloquer différents thèmes d'affichage pour le terminal (Matrix, Dracula, Gold).
- Mode contre-la-montre : défi chronométré de 60 secondes pour valider un maximum de requêtes consécutives.
- Validation cryptographique : export de profil chiffré via l'algorithme AES-256 avec signature HMAC-SHA256 afin d'attester de la complétion des niveaux.
Programme pédagogique
| Niveaux | Notions et compétences couvertes |
|---|---|
| 01 à 03 | Fondamentaux : SELECT, projection de colonnes, alias AS, déduplication DISTINCT
|
| 04 à 08 | Filtrage avancé : WHERE, AND, OR, BETWEEN, IN, LIKE, IS NULL
|
| 09 à 10 | Tri et découpage : ORDER BY, LIMIT, OFFSET
|
| 11 à 13 | Agrégation : COUNT, SUM, AVG, GROUP BY, HAVING
|
| 14 à 16 | Relations : INNER JOIN, LEFT JOIN, identification des clés orphelines |
| 17 à 18 | Logique conditionnelle : sous-requêtes corrélées, structures CASE WHEN
|
| 19 à 20 | SQL moderne : expressions de table communes (WITH), fenêtrage analytique |
| 21 à 25 | Manipulation et définition : INSERT, UPDATE, DELETE, CREATE TABLE, ALTER TABLE
|
| 26 à 28 | Administration : CREATE VIEW, CREATE INDEX, transactions atomiques |
| 29 à 32 | Analytique avancée : déclencheurs d'audit, LAG(), récursion hiérarchique |
| 33 à 35 | Niveau final : programmation procédurale avec CREATE PROCEDURE et CALL
|
Installation et démarrage
Le projet nécessite un environnement Node.js (version 18 ou supérieure) :
bash
# Cloner le dépôt
git clone [https://github.com/7Bhil/SQL.git](https://github.com/7Bhil/SQL.git)
cd SQL
# Installer les dépendances
npm install
# Démarrer le jeu
npm start

Top comments (0)