Website da Associação Portuguesa de Powerlifting.
Find a file
2026-01-24 15:20:21 +00:00
content Final accessability updates. 2026-01-24 15:20:21 +00:00
public site main page updates 2026-01-10 20:17:53 +00:00
src Final accessability updates. 2026-01-24 15:20:21 +00:00
.gitignore Initial commit from Create Next App 2026-01-06 19:42:22 +00:00
eslint.config.mjs Initial commit from Create Next App 2026-01-06 19:42:22 +00:00
LICENSE Add license 2026-01-06 20:57:19 +00:00
next.config.ts Initial commit from Create Next App 2026-01-06 19:42:22 +00:00
package-lock.json new updates 2026-01-24 12:28:19 +00:00
package.json new updates 2026-01-24 12:28:19 +00:00
postcss.config.mjs Initial commit from Create Next App 2026-01-06 19:42:22 +00:00
README.md Fixed accessability issue 1 - updated readme 2026-01-24 13:34:49 +00:00
tsconfig.json Initial commit from Create Next App 2026-01-06 19:42:22 +00:00

Website APP - Associação Portuguesa de Powerlifting

Visão Geral

Site oficial da Associação Portuguesa de Powerlifting, construído com tecnologias modernas e com foco em acessibilidade e desempenho.

Stack Tecnológico:

  • Next.js 16 (App Router) com TypeScript
  • Tailwind CSS 4 para estilos
  • React 19.2
  • Markdown com remark e rehype para processamento de conteúdo
  • Integração com OpenPowerlifting para dados de provas

Características Principais:

  • Acessibilidade rigorosa (WCAG 2.1 AA) com suporte completo a leitores de ecrã
  • Suporte bilingue: Português (predefinido) e Inglês
  • Conteúdo em Markdown com Tabela de Conteúdos fixa na navegação lateral
  • Integração com OpenPowerlifting (scraping de provas + análise CSV de resultados)
  • Proteção contra bots com Cloudflare Turnstile na página Contactos

Começar

Pré-requisitos

  • Node.js 18+ instalado
  • npm ou yarn

Instalação

  1. Instalar dependências:
npm install
  1. Configurar variáveis de ambiente em .env.local:
NEXT_PUBLIC_TURNSTILE_SITE_KEY=your_site_key_here

Contacte a equipa para obter a chave do Turnstile.

  1. Executar o servidor de desenvolvimento:
npm run dev

Abra http://localhost:3000 — será redirecionado automaticamente para /pt.

Scripts Disponíveis

npm run dev      # Servidor de desenvolvimento com hot reload
npm run build    # Construir para produção
npm start        # Iniciar servidor de produção
npm run lint     # Validar código com ESLint

Estrutura do Projeto

app/
├── src/
│   ├── app/
│   │   ├── pt/                    # Rotas em Português
│   │   ├── en/                    # Rotas em Inglês
│   │   └── api/                   # Endpoints da API
│   └── components/                # Componentes React reutilizáveis
├── content/
│   ├── pt/                        # Conteúdo em Português (Markdown)
│   └── en/                        # Conteúdo em Inglês (Markdown)
└── public/                        # Assets estáticos

Caminhos Principais

Rotas

API

Conteúdo

  • Conteúdo em Markdown: content — todas as páginas dinâmicas

Notas de Acessibilidade

O projeto segue as normas WCAG 2.1 Nível AA:

  • Navegação: Skip link no topo da página e indicadores de foco claros em todos os elementos interativos
  • Estrutura: Títulos semânticos (<h1>, <h2>, etc.) e etiquetas ARIA apropriadas na navegação
  • Tabelas: Incluem cabeçalhos estruturados, legendas e suporte a leitores de ecrã
  • Imagens: Todos os <img> têm atributo alt descritivo
  • Cores: Contraste suficiente entre texto e fundo (ratio mínimo 4.5:1)

Dependências Principais

Pacote Versão Uso
next 16.1.1 Framework React com SSR e otimizações
react 19.2.3 Biblioteca UI
react-markdown 10.1.0 Renderizar Markdown em React
cheerio 1.1.2 Web scraping para OpenPowerlifting
papaparse 5.5.3 Parsing de CSV
tailwindcss 4 Framework CSS utilitário

Deployment

O site está pronto para ser deployado em plataformas como Vercel:

npm run build    # Construir bundle de produção
npm start        # Testar localmente antes de fazer deploy

Assegurar que as variáveis de ambiente estão configuradas no provider de hosting.