DEV Community

Cover image for J'ai transformé l'apprentissage du SQL en un RPG dans le Terminal (avec Procédures Stockées & Triggers) ⚔️ terminal-sql
Bhilal. Chitou
Bhilal. Chitou

Posted on

J'ai transformé l'apprentissage du SQL en un RPG dans le Terminal (avec Procédures Stockées & Triggers) ⚔️ terminal-sql

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, JOIN basiques).
  • 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.

Démonstration SQL Master


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 JOIN et LEFT JOIN, ordre d'exécution logique de GROUP BY et HAVING).
  • 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 :cours disponible 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, COMMIT et ROLLBACK pour simuler des opérations bancaires atomiques.
  • Indexation et structures virtuelles : création de vues avec CREATE VIEW et indexation avec CREATE INDEX.
  • Automatisation via déclencheurs : implémentation de tables d'audit et de gestion des stocks avec CREATE TRIGGER AFTER INSERT ou UPDATE.
  • 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 PROCEDURE et l'instruction CALL.

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
Enter fullscreen mode Exit fullscreen mode

Top comments (0)