Partilhar: WhatsApp
aulify · Mini-Projecto
UC UC02834 · T. Desenv. Software
Versão · Aluno

Mini-Projecto · Aplicação web full-stack

Site completo com BD, autenticação e API
⏱ Duração estimada: 14 horas (≈ 8 aulas) ↗ Referencial SNQ
Índice

Contexto

Cada par/trio constrói uma aplicação web completa em Flask: frontend (templates), backend (rotas), BD (SQLAlchemy), autenticação e uma API REST. Domínio à escolha: gestor de tarefas, blog, mini-loja, agenda de eventos, biblioteca.

Requisitos

Funcionais

  1. Autenticação — registo, login, logout (senhas com hash).
  2. CRUD completo de pelo menos 1 recurso principal (criar/listar/editar/apagar).
  3. Templates com herança (base + páginas).
  4. API REST — pelo menos GET e POST em JSON.
  5. Autorização — utilizador só vê/edita os seus dados.
  6. Validação no servidor.

Não-funcionais

  1. Estrutura organizada (blueprints ou módulos).
  2. BD SQLite (PostgreSQL = bónus).
  3. CSRF protegido, secrets em .env.
  4. 10+ testes (pytest).
  5. Deploy público + README + Git.

Fases

Fase 1 · 1.5h

Planeamento

Diagrama ER + mapa de rotas.

Fase 2 · 2h

Setup + BD

BD funcional + modelos.

Fase 3 · 2.5h

Autenticação

Auth funcional + 3 testes.

Fase 4 · 3h

CRUD + templates

CRUD funcional com UI.

Fase 5 · 2h

API REST

API testável com curl/Postman.

Fase 6 · 2h

Testes

Suite de testes a passar.

Fase 7 · 1h

Deploy + apresentação

URL público + repositório.

Critérios de avaliação

Item Peso
Autenticação segura 15%
CRUD completo 20%
Templates + herança 10%
API REST 15%
Autorização 10%
Validação + segurança 10%
Testes 10%
Deploy 5%
Git + README 5%

Reflexão

Em meia página: que camada foi mais difícil (auth, BD, API, frontend)? O que farias diferente na arquitectura? Como escalarias esta app para 10 000 utilizadores?