Módulo de Cenários Interativos para Moodle¶
Sobre o Projeto¶
Este repositório contém o código-fonte e a documentação técnica de uma solução de Frontend Desacoplado para criação de experiências de aprendizagem interativas (Image Maps) dentro do Moodle.
O objetivo principal é permitir que conteudistas insiram cenários visuais ricos (com hotspots, hover effects e navegação) através de arquivos JSON e HTML simples, sem depender de plugins pesados ou alterações no core do Moodle.
Uso Rápido¶
1. Incluir o script no ambiente (Moodle)¶
Adicione o script abaixo no cabeçalho do seu tema ou nas configurações de "HTML Adicional" do Moodle.
<script src="https://s3-middag-public.middag.com.br/app-unb-ecos/imunizamaisbrasil/latest/app.min.js" defer></script>
2. Criar o Elemento Gatilho¶
Dentro de qualquer atividade do Moodle (Página, Rótulo, Livro), alterne para o modo HTML e insira:
<div
class="cenario-wrapper"
data-cenario-map="cenario-gestores-modulo01"
style="min-height: 400px; position: relative;"
>
<p>Carregando experiência interativa...</p>
</div>
O script detectará automaticamente este elemento, buscará o arquivo cenario-gestores-modulo01.json e renderizará a interface.
Build e Distribuição (CDN)¶
O pipeline de CI/CD publica automaticamente os artefatos gerados na pasta dist/ para a CDN pública. Abaixo estão as tabelas contendo os endpoints de distribuição das versões publicadas no CDN.
Versão LATEST — Build Contínuo (sempre atualizada)
Sempre aponta para o último build da branch main. Ideal para integração contínua sem alterar código no Moodle.
| Tipo de Arquivo | URL |
|---|---|
| Bundle JS (produção) | https://s3-middag-public.middag.com.br/app-unb-ecos/imunizamaisbrasil/latest/app.min.js |
| Source Map | https://s3-middag-public.middag.com.br/app-unb-ecos/imunizamaisbrasil/latest/app.js.map |
| Assets da versão | https://s3-middag-public.middag.com.br/app-unb-ecos/imunizamaisbrasil/latest/assets/ |
Uso recomendado: ambientes que sempre devem receber a versão mais recente sem alterações no Moodle.
Versão SEMVER — Build Imutável (versões fixas)
Use para garantir estabilidade histórica ou para testes A/B de versões específicas. Substitua v{VERSION} pela versão específica desejada.
| Tipo de Arquivo | URL |
|---|---|
| Bundle JS (versão fixa) | https://s3-middag-public.middag.com.br/app-unb-ecos/imunizamaisbrasil/v{VERSION}/app.min.js |
| Assets da versão | https://s3-middag-public.middag.com.br/app-unb-ecos/imunizamaisbrasil/v{VERSION}/assets/ |
Uso recomendado: experimentos A/B, validações de features, ambientes críticos e versionados.
Documentação Técnica¶
A documentação técnica segue o padrão MkDocs e está organizada em módulos dentro da pasta docs/:
- Página Inicial - Introdução e setup do ambiente
- Visão Geral - Arquitetura "Headless-ish" e fluxo de dados
- Especificação da API - Contrato JSON (Fonte da Verdade) e interfaces TypeScript
- Especificação do Componente - Lógica de renderização, coordenadas e responsividade
- Validação de Campos - Schema validation e tratamento de erros
- Guia de Integração - Deploy no CDN e configuração no Moodle
- Changelog - Histórico de versões
Roadmap¶
Monitoramento de Conclusão (Checklist)¶
Atualmente, a API core_courseformat_get_state retorna informações de Acesso (uservisible), mas não fornece explicitamente o estado de Conclusão (se a atividade já foi feita, aprovada ou reprovada).
Para exibir indicadores de progresso (ex: ícone \(\checkmark\)), será necessário implementar uma segunda chamada à API:
- Método:
core_completion_get_activities_completion_*** - Payload:
{ courseid: 123, userid: 456 }
No momento, o foco é garantir a navegação correta e o bloqueio de atividades restritas por segurança.
Desenvolvimento¶
- Michael Meneses – [email protected]
- Gabriel Bello – [email protected]