PDM · DAW 2

Aula 15 · Semana 7 · Quarta, 21 de outubro de 2026 · 16:00 às 18:00

Kickoff do projeto Tempo Açores

Teoria (30 minutos): método de projeto: MVP, backlog, definição de pronto e fluxo de trabalho por pull requests. Prática: formação dos grupos, criação dos repositórios no GitHub Classroom, atribuição do client-id da API e planeamento da sprint 1.

Projeto: Tempo Açores

No fim desta aula consegues

MVP: o mínimo que se instala e se usa

Para os testes: o MVP corta âmbito, nunca qualidade; cada funcionalidade que fica, fica completa.

Backlog em issues

Para os testes: uma issue boa tem título com verbo, critérios de aceitação verificáveis e uma estimativa.

Definição de pronto

Uma issue está pronta quando o PR que a fecha cumpre tudo isto. Se falha um ponto, não está pronta, por muito que "funcione no meu portátil".

Para os testes: "pronto" é uma lista objetiva, não uma opinião.

Fluxo: issue → branch → PR → revisão → merge

  1. Issue atribuída a uma pessoa, na coluna "Em curso" do board.
  2. Branch a partir de main atualizado: git switch -c feat/12-previsao-5-dias. O número da issue no nome.
  3. Commits pequenos com conventional commits: feat(previsao): mostrar 5 dias, fix(api): tratar 429.
  4. PR pequeno (menos de 300 linhas), com descrição, screenshot do telemóvel e Closes #12.
  5. Revisão por um colega: pelo menos um comentário útil; o autor responde ou corrige.
  6. Merge (squash) feito pelo revisor; branch apagada. main está protegido: ninguém faz push direto.

Para os testes: main protegido, PR pequeno e revisão de um colega é o fluxo mínimo de uma equipa.

Sprints e reviews

SprintDatasReview em aula
Sprint 121/10 a 02/11Aula 19, segunda 02/11
Sprint 202/11 a 18/11 (com o teste 1 pelo meio)Aula 26, quarta 18/11
Sprint 318/11 a 02/12Aula 32, quarta 02/12
Freeze e defesasTag v1.0.0 a 09/12Defesas a 14 e 16/12

Para os testes: a review mostra software a funcionar no dispositivo; a retro melhora o processo da sprint seguinte.

Hoje: enunciado, grupos, repositórios, backlog

Regra de ouro Os mínimos primeiro, completos. Um extra só entra no backlog quando todos os mínimos estão na coluna "Feito".

Grupos, GitHub Classroom e client-id

  1. Grupos de 2 a 3. Nome do grupo e membros no formulário do Moodle. Sem grupos de 1 nem de 4.
  2. Aceitar o assignment no GitHub Classroom (link no Moodle). O primeiro membro cria a equipa, os outros juntam-se. O repositório nasce a partir do template tempo-acores-template.
  3. Clonar e correr. O template já tem ApiClient, tema, navegação e os widgets de estado das aulas 12 a 14.
    git clone https://github.com/pdm-daw-2026/tempo-acores-grupo-07.git
    cd tempo-acores-grupo-07
    flutter pub get
    flutter run --dart-define=PDM_CLIENT_ID=grupo-07 --dart-define=PDM_SECRET=segredo-do-envelope
  4. Receber o client-id e o segredo do grupo, em mão. O segredo nunca entra no repositório: passa por --dart-define ou por um .env.json ignorado pelo git.
  5. Primeiro pedido: a app template mostra a lista de localidades vinda de GET /v1/locations com o token do grupo. Se aparecer 401, o segredo está mal escrito.

Backlog da sprint 1 e board

Exercício 1 Backlog da sprint 1 escrito e organizado no board até ao fim da aula. O docente passa por cada grupo e valida três coisas: títulos com verbo, critérios verificáveis, mínimos antes de extras.

Primeira PR e o que o docente faz

Exercício 2 Primeira PR aberta, revista e com merge antes de sair da sala. Confirma que o revisor deixou pelo menos um comentário, mesmo que seja "LGTM, falta o screenshot".

Até segunda

Para fazer

  • Backlog da sprint 1 fechado até sexta: issues com critérios, estimativas e responsáveis, no board.
  • Cada membro com pelo menos um PR aberto até segunda, ligado a uma issue.
  • Segredo do grupo guardado fora do repositório; .env.json no .gitignore.

Para ler