Titulo Estágio
Desenho e implementação de um modelo de dados relacional apoiado em Postgres para o Sakai Learning Management System (LMS)
Áreas de especialidade
Engenharia de Software
Local do Estágio
Remote
Enquadramento
O Sakai LMS é um projecto de código aberto patrocinado pela Apereo Foundation com uma implementação alargada um pouco por todo o mundo. Através do Sakai, milhares de professores e alunos estruturam a sua aprendizagem em meios digitais de forma a conseguir mais e melhores resultados escolares.
O Sakai LMS tem-se mantido actual e relevante no panorama actual das plataformas de apoio ao ensino, sempre numa perspectiva de se adaptar às infra-estruturas das instituições e universidades que o adoptam. Em consequência deste factor, as bases de dados suportadas actualmente são o mySQL / MariaDB e Oracle.
É neste contexto que o projecto procura alargar o espectro de bases de dados de forma a funcionar com PostgreSQL, fazendo as adaptações necessárias ao nível da modelação de dados e/ou arquitectura para o fazer.
Objetivo
Os objectivos do estágio focam-se na adaptação e implementação do modelo dados e da camada que lhes acede que lhes acede para que se torne compatível com PostgreSQL.
Mais concretamente, pretende-se não apenas que o Sakai LMS passe a funcionar com mais uma base de dados, como também consiga tirar partido das funcionalidades únicas que o PostgreSQL oferece em termos de modelação, armazenamento, optimização e tratamento de dados. Em cima deste trabalho, será necessário dotar o Sakai LMS de meios para interagir com PostgreSQL nomeadamente ao nível da camada de acesso a dados e respectivas abstracções.
Os deliverables previstos são:
- Estudo e análise do modelo de dados conceptual
- Desenho e implementação do modelo de dados adaptado a Postgres
- Documentação associada à adaptação do modelo de dados a Postgres
- Implementação da camada de acesso a dados do Sakai de forma a suportar PostgreSQL
- Documentação associada à implementação e suporte a Postgres
- Testes automatizados e inclusão destes no sistema de continuous testing
O trabalho será realizado em coordenação com o fundador e director do Sakai (dr Charles Severance) e todos os resultados serão "abertos" à comunidade, na medida em que o projecto é de código aberto.
Plano de Trabalhos - Semestre 1
No primeiro semestre o objectivo passa por analisar o projecto, o seu contexto, audiência e arquitectura actual, de forma a refinar objectivos e propor um conjunto concreto de resultados e processos a adoptar no segundo semestre.
Os resultados esperados nesta fase incluem:
Fase 1 - Revisão da bibliografia e Estado da Arte
Fase 2 - Familiarização com o âmbito do projecto Sakai LMS, o seu estado actual, audiência e objectivos e constrangimentos (em termos de arquitectura e base de dados)
Fase 3 - Definição de um conjunto refinado de resultados e processos e/ou metodologias para os atingir, com base no ponto anterior
Fase 4 - Elaboração da proposta de dissertação.
Plano de Trabalhos - Semestre 2
No segundo semestre o estagiário deverá implementar o plano traçado no semestre anterior no sentido de concretizar os objectivos gerais do estágio. Assim sendo, e já na posse de toda a informação de contexto do projecto, objectivos e constrangimentos, esperam-se os seguintes resultados:
Fase 5 - Modelação dos dados adaptado a Postgres e respectiva implementação
Fase 6 - Implementação da camada de dados na plataforma de forma a usar a nova base de dados
Fase 7 - Implementação de testes automatizados e configuração do mecanismo de continuous testing
Fase 8 - Disponibilização de documentação com informação auxiliar e complementar ao software desenvolvido
Fase 9 - Escrita da dissertação
A calendarização destes objectivos está dependente de factores externos como a prioritização por parte dos stakeholders assim como de alguns factores internos tal como o próprio estado de desenvolvimento da plataforma, pelo que não é possível estabelecer, nesta fase, um calendário credível para a concretização destes resultados.
Condições
O estágio deverá ser desenvolvido remotamente em coordenação e contacto regular com o coordenador e chefe de equipa. O estagiário tem liberdade para definir o seu horário e método de trabalho desde que isso não coloque em causa os resultados e a sua avaliação.
Os recursos computacionais estão a cargo do estagiário, ainda que possa haver complementos pontuais se necessário (p.e. alojamento e versionamento de materiais).
O estágio é remunerado no segundo semestre até ao valor de 800€ mensais em regime de trabalho independente, sendo esta a forma mais fácil de estabelecer uma ligação contratual entre duas partes em países diferentes.
Algum detalhe omitido aqui poderá ser colocado à consideração com a Apereo Foundation através do orientador do estágio.
Observações
A Apereo Foundation é uma organização internacional com membros em todos os continentes e, como tal, todos os seus membros trabalham remotamente. Este estágio também o é. O que isto significa, na prática, é uma dose extra de responsabilidade assumida de forma a que os resultados sejam atingidos com exigência, brio e determinação que se esperaria de um trabalho on-site.
Trabalhar remotamente tem os seus desafios e é esperado do estagiário que saiba contorná-los, impondo auto-disciplina, organização e método, contando sempre com o apoio da restante equipa (residente em Coimbra).
Há reuniões diárias virtuais de acompanhamento com a equipa (stand-up meetings) e reuniões virtuais de coordenação com os stakeholders a cada duas semanas, nas quais é esperado que o estagiário participe activamente desde que o trabalho desenvolvido o justifique.
Orientador
Charles Severance
csev@umich.edu 📩