Le plugin s’intègre dans ton IDE préféré : Intellij IDEA, WebStorm ou PyCharm, et te permet de bosser direct avec les exercices du cours CodeGym. Genre, tu peux écrire ton code, l’envoyer pour vérif, comparer ta solution avec la "défaut" et plein d’autres trucs. La progression de tes exos dans le plugin est synchronisée avec ton compte CodeGym, donc tu verras la même chose sur le site et dans l’IDE.
Tu peux télécharger le plugin CodeGym depuis le marketplace Jetbrains, direct dans ton IDE. On va montrer les étapes avec WebStorm, mais c’est pareil pour les autres IDE.
Pour utiliser le plugin, il te faut une version Jetbrains IDE 2023.1 ou plus récente.
Va dans "Paramètres", Windows/Linux
File - Settings, MacOSWebStorm - Preferences. Si t’as pas la section paramètres, ouvre un projet ou crée-en un nouveau.Dans la fenêtre qui s’ouvre, choisis Plugins dans le menu à gauche et ouvre l’onglet Marketplace. Dans la barre de recherche, tape codegym
![]()
- Sélectionne le plugin et clique sur le bouton Install.
- Redémarre (Restart IDE) WebStorm pour commencer à utiliser le plugin.
Le plugin est installé !
Connexion à ton compte et chargement d’un exercice
- Tu verras une interface un peu modifiée et un bouton. Se connecter au compte sur la barre horizontale en haut.
En cliquant, une fenêtre s’ouvre pour te connecter à ton compte, où tu dois entrer ta clé secrète :
Petit rappel, tu peux trouver ta clé secrète dans la section Paramètres → Sécurité et connexion.
Pour ouvrir un nouvel exercice, clique sur
Tasksdans le panneau vertical à gauche, puis sur la carte de l’exercice dans le panneau latéral, et clique sur Ouvrir :
- Quand tu ouvres un nouvel exercice, tu verras un espace de travail avec plusieurs fichiers importants :
Solution— c’est ton fichier principal. C’est là que tu vas écrire ta requête SQL pour résoudre l’exercice.init.sql— c’est un script pour préparer ta base de données locale. Il contient les instructions pour créer les tables nécessaires et les remplir avec des données.- L’onglet avec l’énoncé de l’exercice.
- Avec le fichier
Solution, c’est comme sur le site. Tu dois écrire ta solution et cliquer sur le boutonVérifier/Validate
Lancer la solution en local
- D’abord, il faut créer les tables et les données pour l’exercice dans ta base locale. Pour ça, ouvre le fichier
init.sql, fais un clic droit dessus et choisisRun 'init.sql'.
- Dans la fenêtre "Edit Configuration" qui s’ouvre, tu dois indiquer où le script doit s’exécuter. Dans la section "Target data source / schema", clique sur
+et choisis ta connexion configurée, puis le schéma voulu (par exemple,university). Après avoir choisi, clique sur Run.
- Après l’exécution réussie, un message s’affichera en bas dans la console. Pour voir la table créée, rafraîchis la vue de ta base dans le panneau "Database" (le bouton avec deux flèches). Tu devrais voir la nouvelle table (par exemple,
products) dans ton schéma.
- Maintenant que la base est prête, retourne dans le fichier
solution.sql. Écris ta requête SQL. Pour la tester en local, choisis ton schéma dans le menu déroulant au-dessus de l’éditeur et clique sur le bouton vert "Run". Ta requête s’exécutera sur la base locale et tu verras le résultat.![]()
Ré-exécution de init.sql ou résolution du problème des dépendances
Lors de vos travaux pratiques, vous exécuterez souvent le script init.sql pour préparer votre base de données locale. Mais que se passe-t-il si vous l'exécutez une deuxième fois, alors que la table est déjà créée ?
Il semblerait que la commande DROP TABLE IF EXISTS employees;, souvent présente dans de tels scripts, devrait résoudre ce problème en supprimant l'ancienne table avant de créer la nouvelle. Cependant, ce n'est pas toujours le cas. Vous pourriez rencontrer une erreur qui empêche la suppression de la table. Cela se produit si d'autres objets de la base de données font référence à votre table, par exemple des clés étrangères (Foreign Keys) provenant d'autres tables ou des séquences (sequences) utilisées pour les champs auto-incrémentés. Le système protège ces liaisons en interdisant la suppression de la table "parente".
L'option CASCADE
Pour de tels cas, PostgreSQL dispose d'une extension pour la commande DROP — l'option CASCADE. Elle indique au serveur : "Supprime cette table et supprime automatiquement tous les objets qui en dépendent". Cela permet de nettoyer de manière "forcée" tout ce qui est lié à la table en cours de suppression.
Exemple de code
-- Cette variante peut provoquer une erreur s'il existe des références à la table employees
DROP TABLE IF EXISTS employees;
-- VARIANTE pour les scripts d'apprentissage
-- Supprimera la table employees et tous les objets qui en dépendent (clés, séquences).
-- IF EXISTS prévient une erreur si la table n'existe pas encore.
DROP TABLE IF EXISTS employees CASCADE;
-- Après cela, il est possible de recréer la table en toute sécurité
CREATE TABLE employees (
id SERIAL PRIMARY KEY,
full_name TEXT NOT NULL
-- ... autres colonnes
);
Important ! À des fins pédagogiques et lors du développement local où vous devez fréquemment recréer la structure de la base de données, CASCADE est votre meilleur allié. Cependant, dans les bases de données de production réelles, cette commande doit être utilisée avec une extrême prudence, car elle peut entraîner la suppression involontaire de données et d'objets liés importants.
Synchronisation des exercices site — plugin
La liste des exercices et leurs statuts se met à jour automatiquement, toutes les cinq minutes ou après avoir envoyé un exercice pour vérif (serveur CodeGym).
Donc si tu as résolu un exercice sur le site, il sera aussi dans la liste des exercices résolus dans le plugin. Si tu veux mettre à jour les statuts tout de suite, clique sur ton avatar (en haut à droite), et dans le menu déroulant choisis Synchroniser les exercices :
Mode débutant dans le plugin
C’est une version simplifiée pour ceux qui n’ont pas (ou peu) d’expérience avec WebStorm et les autres IDE. Certaines fonctions de WebStorm sont cachées. Pour désactiver ce mode, clique sur ton avatar (en haut à droite), et dans le menu déroulant choisis Paramètres :
Comment cacher le panneau de navigation du plugin en mode PRO
Clique sur Paramètres (⚙️) et décoche l’option "Afficher le panneau de navigation du plugin" :



GO TO FULL VERSION