Plugin integruje się z IDE Intellij IDEA, WebStorm albo PyCharm i pozwala Ci pracować w nim z zadaniami kursu CodeGym. Na przykład: pisać kod rozwiązania, wysyłać go do sprawdzenia, porównywać swoje rozwiązanie z "domyślnym" i dużo więcej. Progres w rozwiązywaniu zadań w pluginie jest synchronizowany z Twoim kontem na CodeGym, więc będzie wyglądał tak samo na stronie i w IDE.
Plugin CodeGym możesz pobrać z marketplace Jetbrains, bezpośrednio w swoim IDE. Dalej pokażemy kroki na przykładzie WebStorm, ale te same kroki działają też w innych IDE.
Do pracy z pluginem potrzebujesz wersji IDE Jetbrains 2023.1 lub nowszej.
Wejdź w sekcję "Ustawienia", Windows/Linux
File - Settings, MacOSWebStorm - Preferences. Jeśli nie widzisz sekcji ustawień, otwórz dowolny projekt lub stwórz nowy.W otwartym oknie w bocznym menu wybierz sekcję Plugins i otwórz zakładkę Marketplace. W polu wyszukiwania wpisz codegym
![]()
- Wybierz plugin i kliknij przycisk Install.
- Zrestartuj (Restart IDE) WebStorm, żeby zacząć pracę z pluginem.
Plugin zainstalowany!
Logowanie do konta i pobieranie zadania
- Zobaczysz trochę zmieniony interfejs i przycisk. Zaloguj się do konta na górnym pasku poziomym.
Po kliknięciu otworzy się okno do logowania do Twojego konta, gdzie musisz wpisać swój sekret klucz:
Przypominamy, że sekret klucz znajdziesz w sekcji Ustawienia → Bezpieczeństwo i logowanie.
Żeby otworzyć nowe zadanie, kliknij na
Tasksw lewym pionowym panelu, potem na kartę zadania w bocznym panelu po lewej i kliknij Otwórz:
- Kiedy otwierasz nowe zadanie, pojawia się przed Tobą workspace z kilkoma ważnymi plikami:
Solution— to Twój główny plik roboczy. Tutaj wpisujesz SQL-zapytanie do rozwiązania zadania.init.sql— to pomocniczy skrypt do przygotowania lokalnej bazy danych. Zawiera instrukcje do tworzenia potrzebnych tabel i wypełnienia ich danymi.- Karta z treścią zadania.
- Z plikiem
Solutionwszystko jak na stronie. Trzeba napisać rozwiązanie i kliknąć przyciskSprawdź/Validate
Lokalne uruchamianie rozwiązania
- Najpierw musisz stworzyć tabele i dane do zadania w swojej lokalnej bazie. W tym celu otwórz plik
init.sql, kliknij na niego prawym przyciskiem myszy i wybierzRun 'init.sql'.
- W otwartym oknie "Edit Configuration" musisz wskazać, gdzie dokładnie ma się wykonać skrypt. W sekcji "Target data source / schema" kliknij na
+i wybierz swoje skonfigurowane połączenie, a potem odpowiedni schemat (np.university). Po wyborze kliknij Run.
- Po udanym wykonaniu w konsoli na dole pojawi się odpowiedni komunikat. Żeby zobaczyć utworzoną tabelę, odśwież widok bazy danych w panelu "Database" (przycisk z dwiema strzałkami). Powinieneś zobaczyć nową tabelę (np.
products) w swoim schemacie.
- Teraz, gdy baza danych jest gotowa, wróć do pliku
solution.sql. Napisz swoje SQL-zapytanie. Żeby przetestować je lokalnie, wybierz swój schemat w rozwijanym menu nad edytorem i kliknij zielony przycisk "Run". Twoje zapytanie wykona się na lokalnej bazie danych i zobaczysz wynik.![]()
Ponowne uruchomienie init.sql lub rozwiązanie problemu z zależnościami
Podczas pracy nad zadaniami często będziesz uruchamiać skrypt init.sql, aby przygotować swoją lokalną bazę danych. Ale co się stanie, jeśli uruchomisz go po raz drugi, gdy tabela już została utworzona?
Wydawałoby się, że polecenie DROP TABLE IF EXISTS employees;, które często występuje w takich skryptach, powinno rozwiązywać ten problem, usuwając starą tabelę przed utworzeniem nowej. Jednak nie zawsze tak jest. Możesz napotkać błąd, który nie pozwoli na usunięcie tabeli. Dzieje się tak, jeśli do Twojej tabeli odwołują się inne obiekty bazy danych, na przykład klucze obce (Foreign Keys) z innych tabel lub sekwencje (sequences) używane dla pól z autoinkrementacją. System chroni te powiązania, nie pozwalając na usunięcie tabeli nadrzędnej.
Opcja CASCADE
Dla takich przypadków w PostgreSQL istnieje rozszerzenie dla polecenia DROP — opcja CASCADE. Mówi ona serwerowi: „Usuń tę tabelę i automatycznie usuń wszystkie obiekty, które od niej zależą”. Pozwala to na „przymusowe” wyczyszczenie wszystkiego, co jest związane z usuwaną tabelą.
Przykład kodu
-- Ten wariant może spowodować błąd, jeśli istnieją odwołania do tabeli employees
DROP TABLE IF EXISTS employees;
-- WARIANT dla skryptów edukacyjnych
-- Usunie tabelę employees i wszystkie zależne od niej obiekty (klucze, sekwencje).
-- IF EXISTS zapobiega błędowi, jeśli tabela jeszcze nie istnieje.
DROP TABLE IF EXISTS employees CASCADE;
-- Po tym można bezpiecznie tworzyć tabelę od nowa
CREATE TABLE employees (
id SERIAL PRIMARY KEY,
full_name TEXT NOT NULL
-- ... inne kolumny
);
Ważne! W celach edukacyjnych i podczas lokalnego developmentu, gdzie często trzeba odtwarzać strukturę bazy danych, CASCADE jest najlepszym pomocnikiem. Jednak w rzeczywistych, produkcyjnych bazach danych polecenie to należy stosować z ogromną ostrożnością, ponieważ może prowadzić do niezamierzonego usunięcia ważnych powiązanych danych i obiektów.
Synchronizacja zadań strona — plugin
Lista zadań i ich statusów aktualizuje się automatycznie, co pięć minut albo po wysłaniu dowolnego zadania do sprawdzenia (serwer CodeGym).
Więc jeśli rozwiążesz zadanie na stronie, w pluginie też będzie na liście rozwiązanych. Jeśli chcesz odświeżyć info o statusach zadań od razu, kliknij na swój avatar (w prawym górnym rogu) i w menu wybierz Synchronizuj zadania:
Tryb początkującego w pluginie
To uproszczona wersja dla tych, którzy nie mają (albo mają mało) doświadczenia z WebStorm i innymi IDE. W tym trybie ukryte są niektóre funkcje WebStorm. Żeby wyłączyć ten tryb, kliknij na swój avatar (w prawym górnym rogu) i w menu wybierz Ustawienia:
Jak ukryć panel nawigacyjny pluginu w trybie PRO
Kliknij na Ustawienia (⚙️) i odznacz opcję "Wyświetlaj panel nawigacyjny pluginu":



GO TO FULL VERSION