aulify · Mini-Projecto
UC UC00617 · T. Desenv. Software, T. Inform. Gestão
Versão · Aluno
Mini-projeto · Git workflow profissional
Projeto colaborativo com PRs, CI, code review
Contexto
Formandos em equipas de 3-4 criam pequeno projeto colaborativo no GitHub aplicando workflow profissional. Tema: site simples (landing page, calculadora, lista de tarefas).
Requisitos
Funcionais
- Repositório GitHub organizado.
- README profissional.
- .gitignore apropriado.
- Branch protection em main (ver aviso abaixo).
- Pelo menos 5 PRs com code review.
- CI com GitHub Actions.
- Issues para gestão do trabalho (pelo menos uma por tarefa).
- Conventional commits.
- Tags: pelo menos uma tag anotada de versão (por exemplo
v1.0.0).
Não-funcionais
- Documentação completa.
Aviso sobre branch protection. As regras de proteção de branches dependem do tipo de conta e de repositório (por exemplo, repositório privado num plano gratuito). Antes de começar, a equipa confirma na documentação do GitHub se consegue ativá-las no seu repositório. Se não conseguir, regista a limitação no README e cumpre a regra por acordo: ninguém faz push direto para main e todas as alterações entram por PR com uma aprovação.
Fases
| Fase | Tempo | Entregável |
|---|---|---|
| 1. Preparar o repositório e a estrutura | 30 min | Repo inicial + README |
| 2. Distribuir tarefas + branches | 30 min | Issues + branches por elemento |
| 3. Implementar (cada elemento) | 1h30 | PRs com code review |
| 4. Resolver conflitos | 30 min | Merge bem-sucedido |
| 5. CI + tag de versão | 30 min | Workflow verde + tag anotada |
| 6. Documentação final | 30 min | README polido + docs |
Critérios de avaliação
| Item | Peso |
|---|---|
| Organização do repo | 15% |
| Qualidade PRs (descrições, review) | 20% |
| Conventional commits | 15% |
| CI funcional | 15% |
| Branch protection respeitada (ou regra equivalente acordada) | 10% |
| Resolução de conflitos | 10% |
| Issues e tag de versão | 10% |
| Documentação | 5% |
Reflexão
Em meia página: que aspeto do Git/GitHub te pareceu mais útil? Que erro cometeste e como aprendeste? Como vais aplicar no próximo projeto?