Das Plugin wird in die Entwicklungsumgebung Intellij IDEA, WebStorm oder PyCharm eingebunden und ermöglicht dir, direkt darin mit den Aufgaben des CodeGym-Kurses zu arbeiten. Zum Beispiel kannst du deinen Lösungscode schreiben, ihn zur Überprüfung abschicken, deine Lösung mit der "Default"-Lösung vergleichen und vieles mehr. Dein Fortschritt beim Lösen der Aufgaben im Plugin wird mit deinem CodeGym-Account synchronisiert, deshalb sieht alles gleich aus – sowohl auf der Website als auch in der IDE.
Du kannst das CodeGym Plugin direkt aus dem Jetbrains Marketplace in deiner Entwicklungsumgebung herunterladen. Im Folgenden zeigen wir die Schritte am Beispiel von WebStorm, aber die gleichen Schritte gelten auch für andere IDEs.
Für die Arbeit mit dem Plugin brauchst du eine Jetbrains IDE Version 2023.1 oder neuer.
Geh in den Bereich "Einstellungen", Windows/Linux
File - Settings, MacOSWebStorm - Preferences. Falls es keinen Einstellungsbereich gibt, öffne ein beliebiges Projekt oder erstelle ein neues.Im erscheinenden Fenster wähle im Seitenmenü den Bereich Plugins und öffne den Tab Marketplace. Gib in der Suchzeile codegym ein.
![]()
- Wähle das Plugin aus und klicke auf den Button Install.
- Starte WebStorm neu (Restart IDE), um mit dem Plugin zu arbeiten.
Das Plugin ist installiert!
Login in deinen Account und Aufgabe laden
- Du siehst eine leicht veränderte Oberfläche und einen Button. In den Account einloggen in der oberen horizontalen Leiste.
Beim Klicken öffnet sich ein Fenster zum Einloggen in deinen Account, wo du deinen geheimen Schlüssel eingeben musst:
Zur Erinnerung: Deinen geheimen Schlüssel findest du im Bereich Einstellungen → Sicherheit und Login.
Um eine neue Aufgabe zu öffnen, klicke auf
Tasksin der linken vertikalen Leiste, dann auf die Aufgabenkarte im linken Seitenpanel und klicke auf Öffnen:
- Wenn du eine neue Aufgabe öffnest, erscheint vor dir ein Arbeitsbereich mit mehreren wichtigen Dateien:
Solution— das ist deine Hauptarbeitsdatei. Hier schreibst du deinen SQL-Query zur Lösung der Aufgabe.init.sql— das ist ein Hilfsskript zur Vorbereitung deiner lokalen Datenbank. Es enthält Anweisungen zum Erstellen der nötigen Tabellen und zum Befüllen mit Daten.- Tab mit der Aufgabenstellung.
- Mit der Datei
Solutionläuft alles wie auf der Website. Du musst die Lösung schreiben und auf den ButtonPrüfen/Validateklicken.
Lokales Ausführen der Lösung
- Zuerst musst du die Tabellen und Daten für die Aufgabe in deiner lokalen Datenbank erstellen. Öffne dazu die Datei
init.sql, klicke mit der rechten Maustaste darauf und wähleRun 'init.sql'.
- Im geöffneten Fenster "Edit Configuration" musst du angeben, wo genau das Skript ausgeführt werden soll. Im Bereich "Target data source / schema" klicke auf
+und wähle deine eingerichtete Verbindung und dann das gewünschte Schema (zum Beispieluniversity). Nach der Auswahl klicke auf Run.
- Nach erfolgreicher Ausführung erscheint unten in der Konsole eine entsprechende Nachricht. Um die erstellte Tabelle zu sehen, aktualisiere die Ansicht deiner Datenbank im "Database"-Panel (Button mit zwei Pfeilen). Du solltest die neue Tabelle (zum Beispiel
products) in deinem Schema sehen.
- Jetzt, wo die Datenbank bereit ist, geh zurück zur Datei
solution.sql. Schreib deinen SQL-Query. Um ihn lokal zu testen, wähle dein Schema im Dropdown-Menü über dem Editor und klicke auf den grünen "Run"-Button. Dein Query wird auf der lokalen Datenbank ausgeführt und du siehst das Ergebnis.![]()
Erneutes Ausführen von init.sql oder die Lösung von Abhängigkeitsproblemen
Bei der Arbeit an Aufgaben werden Sie häufig das Skript init.sql ausführen, um Ihre lokale Datenbank vorzubereiten. Aber was passiert, wenn Sie es ein zweites Mal ausführen, nachdem die Tabelle bereits erstellt wurde?
Man sollte meinen, dass der Befehl DROP TABLE IF EXISTS employees;, der in solchen Skripten häufig vorkommt, dieses Problem lösen sollte, indem er die alte Tabelle vor der Erstellung einer neuen löscht. Das ist jedoch nicht immer der Fall. Sie könnten auf einen Fehler stoßen, der das Löschen der Tabelle verhindert. Dies geschieht, wenn andere Datenbankobjekte auf Ihre Tabelle verweisen, wie zum Beispiel Foreign Keys aus anderen Tabellen oder Sequenzen (sequences), die für Felder mit Auto-Inkrement verwendet werden. Das System schützt diese Beziehungen und verhindert das Löschen der "Eltern"-Tabelle.
Die Option CASCADE
Für solche Fälle gibt es in PostgreSQL eine Erweiterung für den DROP-Befehl – die Option CASCADE. Sie weist den Server an: "Lösche diese Tabelle und entferne automatisch alle Objekte, die von ihr abhängen". Dies ermöglicht es, alles, was mit der zu löschenden Tabelle verbunden ist, "zwangsweise" zu bereinigen.
Codebeispiel
-- Diese Variante kann einen Fehler verursachen, wenn auf die Tabelle employees verwiesen wird
DROP TABLE IF EXISTS employees;
-- VARIANTE für Übungsskripte
-- Löscht die Tabelle employees und alle davon abhängigen Objekte (Schlüssel, Sequenzen).
-- IF EXISTS verhindert einen Fehler, falls die Tabelle noch nicht existiert.
DROP TABLE IF EXISTS employees CASCADE;
-- Danach kann die Tabelle sicher neu erstellt werden
CREATE TABLE employees (
id SERIAL PRIMARY KEY,
full_name TEXT NOT NULL
-- ... andere Spalten
);
Wichtig! Zu Lernzwecken und bei der lokalen Entwicklung, wo Sie die DB-Struktur häufig neu erstellen müssen, ist CASCADE Ihr bester Helfer. In realen Produktionsdatenbanken sollte dieser Befehl jedoch mit größter Vorsicht verwendet werden, da er zum unbeabsichtigten Löschen wichtiger verbundener Daten und Objekte führen kann.
Synchronisation Aufgaben Website — Plugin
Die Liste der Aufgaben und deren Status wird automatisch aktualisiert, alle fünf Minuten oder nach dem Absenden einer beliebigen Aufgabe zur Überprüfung (CodeGym Server).
Wenn du also eine Aufgabe auf der Website gelöst hast, erscheint sie auch im Plugin in der Liste der gelösten Aufgaben. Wenn du die Infos zu den Aufgabenstatus sofort aktualisieren willst, klicke auf deinen Avatar (oben rechts) und wähle im Dropdown-Menü den Punkt Aufgaben synchronisieren:
Neulingsmodus im Plugin
Das ist eine vereinfachte Version für User, die keine (oder wenig) Erfahrung mit WebStorm und anderen Entwicklungsumgebungen haben. Einige Funktionen von WebStorm sind darin versteckt. Um diesen Modus zu deaktivieren, klicke auf deinen Avatar (oben rechts) und wähle im Dropdown-Menü den Punkt Einstellungen:
Wie man die Navigationsleiste des Plugins im PRO-Modus ausblendet
Klicke auf den Punkt Einstellungen (⚙️) und entferne das Häkchen bei "Navigationsleiste des Plugins anzeigen":



GO TO FULL VERSION