Projeto
Na disciplina de Engenharia de Software será usada a aplicação Quizzes Tutor para os alunos responderem a perguntas de escolha múltipla sobre as matérias da unidade curricular.Adicionalmente, no projeto da disciplina iremos enriquecer esta aplicação com 3 novas features. O projecto é open source disponível num repositório GitHub.
Para facilitar o desenvolvimento estão disponíveis vídeos sobre a aplicação, suas funcionalidades. modelos e código. Adicionalmente, todas as funcionalidades podem ser experimentadas usando as interfaces DEMO (Student, Teacher e Admin) disponibilizadas.
Grupos e Ramos
O projeto é realizado por grupos de 6 alunos, subdivididos em grupos de 2 alunos. Cada subgrupo de 2 alunos fica responsável por uma das funcionalidades.Deve ser criado um ramo para cada subgrupo, em que o seu nome corresponde à funcionalidade (feature) de que o grupo é responsável. Assim, vão existir os seguintes ramos:
- master - onde são efetuadas as entregas finais do código integrado de cada uma das partes do projeto, a partir do código em develop
- develop - onde é integrado o código de cada um dos subgrupos, essa integração deve ser efetuada frequentemente, com a granularidade de história, seguindo uma política de pull request, em que o código de um subgrupo deve ser obrigatoriamente revisto e aceite por pelo menos um elemento de cada um dos outros dois subgrupos
- pra, pem e pci, onde se desenvolve, respetivamente, as funcionalidades de Perguntas de Resposta Aberta, Perguntas de Escolha Múltipla e Perguntas de Combinação de Itens. A colaboração nestes ramos deve seguir a seguinte estratégia:
- os dois elementos do subgrupo seguem uma política de integração contínua com granularidade de tarefa
- quando o conjunto de tarefas de uma história é terminado deve ser feito um squash dos commits e submetido um pull request ao develop
- se o pull request não for aceite os commits das tarefas de correção devem ser também squashed no contexto da sua história antes de resubmeter o pull request
Entregas
O projeto possui 4 partes:- (30%) Domínio, testes de serviços e JPA - entrega a 26 de março de 2021 às 17:00
- (10%) Spring-boot e Web Services - entrega a 12 de abril de 2021 às 17:00
- (30%) VueJs e testes End-to-end - entrega a 26 de abril de 2021 às 17:00
- (30%) JMeter, Profiling e histórias de responder quiz por forma a formar um produto completo - entrega a 14 de maio de 2021 às 17:00
- As tags Feature-Parte são colocados nos ramos de feature. Por exemplo, pra-p1 corresponde à primeira entrega da feature de Perguntas de Resposta Aberta no ramo pra
- git checkout pra
- git tag -a pra-p1 -m "first delivery pra"
- git push origin pra-p1
- As tags Parte são colocadas no ramo master depois de ter integrado o ramo develop. Por exemplo, p2 corresponde à entrega, relativa à parte 2, da integração das 3 features no ramo develop
- git checkout master
- git merge develop
- git tag -a p1 -m "first delivery"
- git push origin p1