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

Mini-Projecto · Website completo HTML5/CSS/JS

Landing page ou portfolio responsivo + acessível
⏱ Duração estimada: 16 horas (≈ 10 aulas) ↗ Referencial SNQ
Índice

Contexto

Cada par/trio constrói um website completo de raiz com HTML5 semântico, CSS moderno (Flexbox/Grid) e JavaScript vanilla. Cenários à escolha:

Requisitos

Funcionais

  1. Mínimo 4 páginas ou 4 secções principais (com âncoras).
  2. HTML5 semântico (header, nav, main, article, section, footer).
  3. Formulário funcional com validação JavaScript.
  4. Interactividade JS: pelo menos 3 features (menu mobile, modal, slider, filtro, dark mode, contador, etc.).
  5. Responsive funcional em mobile (< 768px), tablet (768-1024px) e desktop (> 1024px).
  6. Persistência com localStorage em pelo menos 1 funcionalidade.
  7. Imagens optimizadas (formato adequado, lazy loading).

Não-funcionais

  1. Acessibilidade WCAG AA (alt, labels, contraste, navegação por teclado).
  2. SEO básico (title, description, OG tags, headings hierárquicos).
  3. Performance: Lighthouse score ≥ 85 em Performance, Accessibility, Best Practices, SEO.
  4. Código limpo e organizado (ficheiros separados HTML/CSS/JS).
  5. Deploy público (Vercel, Netlify ou GitHub Pages).
  6. README com descrição, screenshots, link demo, tecnologias.

Fases

Fase 1 · Design + wireframes (2h)

Fase 2 · HTML estrutura (3h)

Fase 3 · CSS base + layout (4h)

Fase 4 · Responsive (2h)

Fase 5 · JavaScript (3h)

Fase 6 · A11y + SEO + performance (1h)

Fase 7 · Deploy + README (1h)

Critérios de avaliação

Item Peso
HTML semântico + estrutura 15%
CSS + design visual 15%
Responsividade 10%
JavaScript funcionalidades 15%
Acessibilidade (WCAG) 10%
SEO + performance (Lighthouse) 10%
Deploy funcional 5%
README + documentação 10%
Apresentação + demo 10%

Reflexão

Em meia página: qual foi a parte mais difícil — markup, CSS layout, ou JavaScript? Como decidiste a estrutura semântica das páginas? Que score Lighthouse atingiste e onde perdeste pontos? Voltarias a usar vanilla JS ou já querias um framework?