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:
  1. (30%) Domínio, testes de serviços e JPA - entrega a 26 de março de 2021 às 17:00
  2. (10%) Spring-boot e Web Services - entrega a 12 de abril de 2021 às 17:00
  3. (30%) VueJs e testes End-to-end - entrega a 26 de abril de 2021 às 17:00
  4. (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 entregas são efetuadas no GitHub usando tags da forma Feature-Parte e Parte
  • 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