Skip to content

Laboratório em Docker que sobe um ambiente completo para uso do plugin Moodle para ensino de programação Coderunner.

Notifications You must be signed in to change notification settings

tiagojulianoferreira/coderunner-stack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stack Coderunner para Moodle

Este projeto inclui um stack de ferramentas úteis para utilização do plugin de tipo de questão Moodle chamado Coderunner. Com essa pilha, além dos desenvolvedores poderem validar novas libs, o próprio professor pode subir um ambiente local, com baixa latência, para elaborar as questões que posteriormente poderiam ser importadas para o Moodle da instituição.

Itens da stack

As credenciais de acesso são definidas no env_file .env disponível na raíz do projeto.

O usuário de acesso padrão do Moodle usuário=user, senha=bitnami

Para subir a stack

Para subir a stack é necessário ter pré-instalados o Docker e Docker-Compose. Baixar o projeto e executar o comando dentro da raiz:

docker-compose up -d

Pode ser necessário dar permissão de escrita no diretório mariadb que será criado

Para visualizar os logs do docker-compose, execute:

docker-compose logs -f

Utilizando o template de questão para PostgreSQL

  1. Definir o tipo de questão como sendo python3
  2. Configurar a questão para template de usuário, informando um nome especifico para o novo tipo de questão. Cuidado para não utilizar nomes já disponíveis.
  3. No trecho abaixo, informar os dados de conexão ao servidor nos campos user, password, port e host.
    conn = CodeRunnerPG(
        "dbname={{database}} user= <informar usuário> password=<informar senha> port=5432 host=postgres-coderunner")
  1. Nas questões que irão utilizar o novo template, no campo Template params, informar as configurações específicas:
    1. database: Nome da base
    2. queryType: SELECT, UPDATE, INSERT, DELETE, DDL e PLSQL (este último pode ser utilizado para comandos DDL que requerem validação).
    3. randomSchema: A resposta do usuário será criada em um schema aleatório
    4. required_commands: Lista de comandos exigidos pela questão na resposta.
{
	"database": "lbdi_minimercado_db",
	"queryType": "PLSQL",
	"randomSchema": "False",
	"required_commands": [
	    
	]
}
  1. Para a execução de blocos anônimos cuja resposta baseia-se na saída de raise notice, substituir pela chamada ao procedimento moodle.p_message. Tal recurso pode ser usado em qualquer questão que tenha código de validação específico.
create schema moodle;

create unlogged table moodle.event_messages(
	id bigserial not null primary key,
	message text
);

create or replace procedure moodle.p_message(p_message text) as
$$
begin
	insert into moodle.event_messages(message) values (p_message);
end;
$$ language plpgsql;

Utilizando o template de questão para JavaScript

  1. Definir o tipo de questão como sendo nodejs
  2. Configurar a questão para template de usuário, informando um nome especifico para o novo tipo de questão. Cuidado para não utilizar nomes já disponíveis.
  3. Escolher o novo template criado na lista de tipos quando for criar novas questões.

Referências

Projeto Coderunner Jobeinabox Arangodb Postgres PGAdmin Web

About

Laboratório em Docker que sobe um ambiente completo para uso do plugin Moodle para ensino de programação Coderunner.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published