- Nem sempre o scopo da aplicação é relevante pro LMS
- Funcionalidades complexas que a API do Moodle não dá suporte
- Possibilidade de aproveitar bibliotecas disponíveis em outras linguagens ou aplicações open-source
- API pobre
- "Frankenstyle"
- ORM inexistente
- Não aproveita recursos mais avançados de bancos relacionais como Postgres e Oracle
- Ausência de um framework "moderno"
- Tema e Padronização Visual
- Sistema de Autorização Robusto
- Modularização e Customzação
- Sistema de Plugins (com controle de dependências)
Aplicações externas precisam trocar dados com o LMS. Não vamos obrigar o estudante a criar mais um Login!
Aplicações externas apresentam desafios (a.k.a. nem tudo são flores)
- Login unificado (não vamos obrigar o usuário a criar uma nova conta)
- Single Sign-on (não vamos obrigar o usuário a se autenticar novamente)
Solução: usar LTI
A aplicação deve implementar seu próprio sistema de autorização, mas o Moodle pode ajudar um pouco no processo, permitindo o acesso a aplicação somente das pessoas que deveriam ter acesso.
Provérbio Russo: “Doveryai, No Proveryai (Confie, mas verifique)
Solução: implemente um sistema de autorização na aplicação externa.
Você pode querer obter dados de alguma atividade, obter algum campo adicional do perfil de usuário, ou ainda verificar se o mesmo está inscrito em uma disciplina ou se já realizou uma determinada atividade.
A sua aplicação pode também gerar dados e precisar exportar de volta para o Moodle, por exemplo, notas.
Solução: Utilize os recursos de Webservice do Moodle
- Tool Provider (aplicação externa)
- Tool Consumer (Moodle)
- LTI Launch
- OAuth 1.0 (garante a segurança)
- Documentação
Consulte os webservices já disponíveis no Moodle e verifique questões relacionadas a permissão de acesso.
Acesse no seu Moodle: Plugins > Webservice > Overview e siga os passos.