O plugin se integra com a sua IDE favorita: Intellij IDEA, WebStorm ou PyCharm, e deixa você trabalhar com as tarefas do curso CodeGym direto nela. Por exemplo, dá pra escrever o código da solução, mandar pra checagem, comparar com a solução "default" e muito mais. O progresso das tarefas no plugin fica sincronizado com sua conta CodeGym, então vai aparecer igualzinho tanto no site quanto na IDE.
Você pode baixar o plugin CodeGym direto do marketplace da Jetbrains, dentro da sua IDE. Aqui vamos mostrar os passos usando o WebStorm, mas é igual pra outras IDEs também.
Pra usar o plugin, você precisa de uma versão da IDE Jetbrains 2023.1 ou mais nova.
Vai em "Configurações", no Windows/Linux
File - Settings, no MacOSWebStorm - Preferences. Se não achar a seção de configurações, abre qualquer projeto ou cria um novo.No menu lateral da janela que abrir, escolhe Plugins e depois clica na aba Marketplace. Na barra de busca digita codegym
![]()
- Escolhe o plugin e clica no botão Install.
- Reinicia (Restart IDE) o WebStorm pra começar a usar o plugin.
Plugin instalado!
Entrando na sua conta e baixando tarefas
- Você vai ver a interface um pouco diferente e um botão Entrar na conta na barra horizontal lá em cima.
Quando clicar, vai abrir uma janela pra você entrar na sua conta, aí é só colocar sua chave secreta:
Lembrando que você acha sua chave secreta em Configurações → Segurança e login.
Pra abrir uma nova tarefa, clica em
Tasksno painel vertical à esquerda, depois na tarefa na barra lateral, e clica em Abrir:
- Quando abrir uma nova tarefa, vai aparecer uma área de trabalho com alguns arquivos importantes:
Solution— esse é seu arquivo principal. É aqui que você vai escrever o SQL pra resolver a tarefa.init.sql— esse é um script pra preparar seu banco de dados local. Ele tem os comandos pra criar as tabelas necessárias e preencher com dados.- A aba com o enunciado da tarefa.
- No arquivo
Solution, é igual ao site. Escreve sua solução e clica no botãoChecar/Validate
Rodando a solução localmente
- Primeiro, você precisa criar as tabelas e dados da tarefa no seu banco local. Pra isso, abre o arquivo
init.sql, clica com o botão direito nele e escolheRun 'init.sql'.
- Na janela "Edit Configuration" que abrir, você precisa dizer onde o script vai rodar. Na seção "Target data source / schema" clica no
+, escolhe sua conexão configurada e depois o schema (tipouniversity). Depois de escolher, clica em Run.
- Se tudo der certo, vai aparecer uma mensagem na console lá embaixo. Pra ver a tabela criada, atualiza a visualização do banco na aba "Database" (ícone com duas setinhas). Você deve ver a nova tabela (tipo
products) no seu schema.
- Agora que o banco tá pronto, volta pro arquivo
solution.sql. Escreve seu SQL. Pra testar local, escolhe seu schema no menu acima do editor e clica no botão verde "Run". Seu SQL vai rodar no banco local e você vê o resultado.![]()
Reexecutar o init.sql ou resolver o problema de dependências
Ao trabalhar nas tarefas, irá frequentemente executar o script init.sql para preparar a sua base de dados local. Mas o que acontece se o executar uma segunda vez, quando a tabela já foi criada?
Poderia parecer que o comando DROP TABLE IF EXISTS employees;, frequentemente encontrado em tais scripts, deveria resolver este problema, eliminando a tabela antiga antes de criar uma nova. No entanto, nem sempre é o caso. Pode deparar-se com um erro que impede a eliminação da tabela. Isto acontece se outros objetos da base de dados fizerem referência à sua tabela, como Chaves Estrangeiras (Foreign Keys) de outras tabelas ou sequências (sequences), usadas para campos com autoincremento. O sistema protege estas relações, impedindo a eliminação da tabela "mãe".
A opção CASCADE
Para esses casos, o PostgreSQL tem uma extensão para o comando DROP — a opção CASCADE. Ela diz ao servidor: "Elimina esta tabela e elimina automaticamente todos os objetos que dependem dela". Isto permite limpar "forçadamente" tudo o que está associado à tabela que está a ser eliminada.
Exemplo de código
-- Esta versão pode causar um erro se houver referências à tabela employees
DROP TABLE IF EXISTS employees;
-- OPÇÃO para scripts educativos
-- Irá eliminar a tabela employees e todos os seus objetos dependentes (chaves, sequências).
-- O IF EXISTS previne um erro se a tabela ainda não existir.
DROP TABLE IF EXISTS employees CASCADE;
-- Depois disto, pode criar a tabela novamente em segurança
CREATE TABLE employees (
id SERIAL PRIMARY KEY,
full_name TEXT NOT NULL
-- ... outras colunas
);
Importante! Para fins educativos e em desenvolvimento local, onde precisa de recriar frequentemente a estrutura da BD, o CASCADE é o seu melhor amigo. No entanto, em bases de dados de produção reais, este comando deve ser usado com extrema cautela, pois pode levar à eliminação não intencional de dados e objetos relacionados importantes.
Sincronizando tarefas site — plugin
A lista de tarefas e status atualiza sozinha, a cada cinco minutos ou depois que você manda qualquer tarefa pra checagem (servidor CodeGym).
Então, se você resolveu uma tarefa no site, no plugin ela também vai aparecer como resolvida. Se quiser atualizar o status das tarefas agora, clica no seu avatar (canto superior direito) e no menu escolhe Sincronizar tarefas:
Modo iniciante no plugin
Essa é uma versão mais simples pra quem não tem (ou tem pouca) experiência com WebStorm e outras IDEs. Algumas funções do WebStorm ficam escondidas. Pra desativar esse modo, clica no seu avatar (canto superior direito) e no menu escolhe Configurações:
Como esconder o painel de navegação do plugin no modo PRO
Clica em Configurações (⚙️) e desmarca a opção "Mostrar painel de navegação do plugin":



GO TO FULL VERSION