Este é o ecossistema de aplicações que integram os Ambientes Virtuais de Aprendizagem (AVA) do IFRN ao SUAP. O ecossistema é composto por 5 softwares, que integra um único SUAP a vários AVA. As partes que compõem esse ecossistema são:
SGA. Protocolos opcionais:
Native Moodle Web Service: plugin nativo com implementações REST, SOAP e XML-RPC."RESTful": plugin de terceiros com implementações JSON, XML e FormREST: plugin de terceiros com implementações JSON e XMLXML-RPC: plugin de terceiros para suporte a `XML-RPCMCP: plugin de terceiros com implementação do Model Context Protocol para uso por agentes de IAJSON REST.oAuth2 e JWT.SGA, JSON REST, oAuth2 e JWT.Native Moodle Web Service, JSON RESTful, JWT e SGA. Em construção.O IFRN oferece 5 instâncias:
Neste ecossistema o Integrador AVA é o middleware responsável por orquestrar a integração. Dado que pode haver mais de um AVA, ele é responsável por escolher qual AVA será integrado para cada diário.
Neste ecossistema o local_suap é o responsável por receber a requisição de um Integrador AVA e fazer todo o trabalho pesado no Moodle.
Para funcionar usamos um modelo de equivalência, conforme.
| No SUAP | No Moodle |
|---|---|
| 1 diário | 1 curso |
| 1 usuário | 1 usuário |
| 1 papel no diário | 1 inscrição |
| 1 período | 1 categoria de notas |
| 1 coorte | 1 coorte |
| 1 vinculo na coorte | 1 vinculo na coorte |
| 1 polo | 1 grupo |
Neste ecossistema o Painel AVA oferece interface única para acesso a todos os diários de todos os AVA integrados, mesmo os que não foram criados pelo integrador.

O objetivo desta página é dar-lhe uma visão de como este ecossistema foi arquitetado a fim de que você possa tentar se inspirar e reproduzir em seu ambiente com o propósito de melhorar a oferta de serviços AVA à comunidade acadêmica.
A integração é composta de duas partes: diários e notas.
Se você não tem tempo e já tem noção do que é este ecossistema, segue a documentação rápida do que fazer a instalação e configuração do ecossistema em 3 passos.
Aqui não teremos os manuais de instalação do Moodle, do Plugin local_suap ou do SUAP, para isso, consulte os manuais dos mesmos.

Instale o Plugin local_suap direto do fonte no GitHub conforme o README do software. Acesse a página de configurações do plugin em %MOODLE_ROOT_URL%/admin/settings.php?section=authsettingsuap e copie o valor da configuração sync_up_auth_token que foi gerado automaticamente na instalação (lembre que você pode informar outro, se quiser). Repita este passo para cada Moodle que você tem instalado.
Depois de colocar o Painel AVA para executar conforme o README do software, configure ao menos a variável de ambiente SUAP_EAD_KEY em confs/enabled/painel.env. Outras configurações serão necessárias, esta é necessária para a autenticação do SUAP neste serviço.
Copie a URL raiz do Moodle e o token de autenticação do passo anterior e cadastre em %PAINEL_ROOT_URL%/painel/admin/painel/ambiente/. Faça isso para cada Moodle com o qual queres integrar.
Atualmente é necessário cadastrar um Moodle por campi, se você tem um mesmo Moodle para mais de um campus, cadastre cada campi individualmente e informe a mesma URL e o mesmo token.
Edite o local_settings.py de tua instalação e defina ao menos as configurações:
MOODLE_SYNC_URL com a URL raiz do middleware do Painel AVA (ex.: “https://ava.ifbr.edu.br/api/moodle_suap/”).MOODLE_SYNC_TOKEN com o valor que foi o que você especificou no Painel AVA, arquivo confs/enabled/painel.env, variável de ambiente SUAP_EAD_KEY.Estes diagramas foram construídos usando o https://app.diagrams.net/ e podem ser baixado daqui para sua própria edição. Ele se baseia no C4 Model com a descrição dos tipos de diagramas descritos de forma super simplificada aqui.
No SUAP um curso é formado por vários componentes currículares que são ofertados em períodos na forma de turmas, isto gera um código único de diário.
O código do diário é formado pela concateção do código da turma e pelo código do componente currícular, separados por “.”, mais o ID do diário. No exemplo abaixo o código do diário seria “20212.1.011001.1P.FIC007#123456”, onde:
- 20212.1.011001.1P - código da turma, onde:
- 20212 - ano/período de oferta do componente, no caso, ofertado em 2021, período 2.
- 1 - período da turma, no caso, esta e é o primeiro perído do turma, ou seja, a turma se iniciou no 2º período de 2021 mesmo.
- 011001 - código do curso, no caso, é o código do curso de “Operador de sistemas”.
- 1P - identificação da turma, no caso, é arbitrado pela área acadêmica do campus/instituição.
- FIC007 - código do componente currícular, no caso, FIC007 indicaria o componente “Planilhas eletrônicas - Fundamental”.
- #123456 - ID do diário no SUAP, no caso, #123456 indicaria o diário cujo ID é “123456”. *Antes não tinha este elemento, foi adicionado pois um diário pode ser dividido e isso causaria inconsistência.