# Guia de Boas Práticas — Portal de Transparência PNTP 2026

## 1. Princípios de Design

### 1.1 Simplicidade

```
✅ Faça:
- Use linguagem clara e objetiva
- Organize informações em seções lógicas
- Mantenha navegação intuitiva
- Use ícones e símbolos universais

❌ Não faça:
- Use jargões técnicos sem explicação
- Crie menus profundos (mais de 3 níveis)
- Use ícones sem texto explicativo
- Sobrecarregar a página com informações
```

### 1.2 Acessibilidade

```
✅ Faça:
- Use contraste adequado (WCAG AA)
- Forneça textos alternativos para imagens
- Garanta navegação por teclado
- Use HTML semântico

❌ Não faça:
- Use apenas cor para transmitir informação
- Crie tabelas complexas sem cabeçalhos
- Use fontes muito pequenas
- Ignore leitores de tela
```

### 1.3 Performance

```
✅ Faça:
- Otimize imagens (WebP, compressão)
- Use cache adequadamente
- Minimize requisições HTTP
- Use lazy loading

❌ Não faça:
- Carregue todos os dados de uma vez
- Use imagens sem otimização
- Ignore dispositivos móveis
- Use bibliotecas desnecessárias
```

---

## 2. Boas Práticas por Dimensão

### 2.1 Informações Prioritárias

**Sítio oficial próprio:**
- Use domínio institucional (ex: `prefeitura.mg.gov.br`)
- Evite subdomínios de terceiros
- Configure redirecionamentos corretos

**Portal de transparência:**
- Use URL amigável (`/transparencia`)
- Garanta que o link esteja visível na página inicial
- Use nome claro ("Transparência", "Acesso à Informação")

**Ferramenta de pesquisa:**
- Posicione no topo da página
- Use placeholder informativo ("O que você procura?")
- Garanta que a busca funcione sem acentos/maiúsculas

---

### 2.2 Informações Institucionais

**Estrutura organizacional:**
- Atualize o organograma sempre que houver mudanças
- Inclua data de atualização visível
- Use HTML semântico (não apenas imagem)

**Atos normativos:**
- Mantenha série histórica organizada por ano
- Use PDF pesquisável (não escaneado)
- Implemente filtros eficientes

---

### 2.3 Receita e Despesa

**Tabelas de dados:**
- Use tabelas HTML (não apenas PDF)
- Permita exportação em múltiplos formatos
- Implemente filtros por período

**Dados atualizados:**
- Automatize a atualização quando possível
- Inclua data de atualização visível
- Diferencie "previsão" de "realizado"

---

### 2.4 Recursos Humanos

**Relação de servidores:**
- Inclua todos os tipos de vínculo (efetivos, comissionados, etc.)
- Atualize mensalmente
- Permita busca por nome

**Remuneração:**
- Exiba relação completa (não consulta individual)
- Não exija login ou autenticação
- Inclua data de referência

---

### 2.5 Licitações e Contratos

**Documentos:**
- Use PDF pesquisável (não escaneado)
- Organize por processo/licitação
- Inclua todos os documentos obrigatórios

**Filtros:**
- Por ano, mês, situação, modalidade
- Permita busca por objeto
- Ofereça exportação

---

### 2.6 Planejamento e Prestação de Contas

**Relatórios:**
- Publicar dentro dos prazos legais
- Manter série histórica completa
- Usar PDF pesquisável

**RGF e RREO:**
- Atualizar automaticamente
- Incluir todos os anexos obrigatórios
- Verificar se estão na seção correta

---

### 2.7 SIC

**Formulário:**
- Seja simples e direto
- Não exija documentos desnecessários
- Permita pedido anônimo (se aplicável)

**Relatório estatístico:**
- Incluir todos os dados obrigatórios
- Atualizar anualmente
- Oferecer exportação

---

### 2.8 Acessibilidade

**Implementação:**
- Use HTML semântico
- Implemente ARIA labels quando necessário
- Teste com leitores de tela

**Alto contraste:**
- Inverter cores dominantes
- Manter legibilidade
- Testar com usuários

**Redimensionamento:**
- Permitir aumento de até 200%
- Não quebrar o layout
- Testar em diferentes navegadores

---

## 3. Boas Práticas Técnicas

### 3.1 URLs

```
✅ Faça:
/transparencia/receita/previsao-realizacao
/transparencia/despesa/empenhos
/transparencia/licitacoes/relacao

❌ Não faça:
/pagina.php?id=123&tipo=receita
/transparencia?secao=receita&sub=prev
/index.php?pag=transp&cat=1
```

### 3.2 Formatos de Arquivo

```
✅ Faça:
- PDF pesquisável para documentos
- XLSX/CSV para dados tabulares
- HTML para visualização na tela
- JSON para dados abertos

❌ Não faça:
- PDF escaneado
- Imagens de tabelas
- Formatos proprietários sem alternativa
```

### 3.3 Metadados

```html
<!-- Inclua metadados adequados -->
<meta name="description" content="Portal de Transparência - Prefeitura Municipal">
<meta name="keywords" content="transparência, acesso à informação, receita, despesa">
<meta property="og:title" content="Portal de Transparência">
<meta property="og:description" content="Acesse informações públicas do município">
<meta property="og:image" content="https://www.dominio.gov.br/og-image.jpg">
```

### 3.4 Dados Estruturados

```json
{
  "@context": "https://schema.org",
  "@type": "GovernmentOrganization",
  "name": "Prefeitura Municipal",
  "url": "https://www.dominio.gov.br",
  "contactPoint": {
    "@type": "ContactPoint",
    "telephone": "+55-35-0000-0000",
    "contactType": "customer service"
  }
}
```

---

## 4. Boas Práticas de Conteúdo

### 4.1 Linguagem

```
✅ Faça:
- Use linguagem clara e objetiva
- Evite jargões técnicos
- Explique termos técnicos quando necessário
- Use voz ativa

❌ Não faça:
- Use linguagem muito técnica
- Use siglas sem explicação
- Use frases muito longas
- Use jargões jurídicos desnecessários
```

### 4.2 Apresentação

```
✅ Faça:
- Use tabelas para dados tabulares
- Use listas para enumerações
- Use títulos e subtítulos hierárquicos
- Use espaçamento adequado

❌ Não faça:
- Use blocos de texto longos
- Ignore a hierarquia visual
- Use cores sem contraste adequado
- Sobrecarregar a página
```

### 4.3 Navegação

```
✅ Faça:
- Use menu claro e organizado
- Implemente breadcrumb
- Forneça mapa do site
- Use links descritivos

❌ Não faça:
- Use menus profundos (mais de 3 níveis)
- Use links genéricos ("clique aqui")
- Ignore a navegação por teclado
- Use pop-ups desnecessários
```

---

## 5. Boas Práticas de Segurança

### 5.1 HTTPS

```nginx
# Configurar HTTPS obrigatório
server {
    listen 80;
    server_name dominio.gov.br;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl http2;
    server_name dominio.gov.br;
    ssl_certificate /etc/letsencrypt/live/dominio.gov.br/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/dominio.gov.br/privkey.pem;
    # ...
}
```

### 5.2 Headers de Segurança

```nginx
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline';" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
```

### 5.3 Proteção de Dados

- Não exponha dados sensíveis em URLs
- Use tokens de autenticação seguros
- Implemente rate limiting
- Faça backup regularmente

---

## 6. Checklist de Boas Práticas

### 6.1 Design

- [ ] Linguagem clara e objetiva
- [ ] Navegação intuitiva
- [ ] HTML semântico
- [ ] Responsivo (mobile, tablet, desktop)
- [ ] Contraste adequado (WCAG AA)
- [ ] Fontes legíveis

### 6.2 Conteúdo

- [ ] Informações organizadas em seções lógicas
- [ ] Dados atualizados regularmente
- [ ] Série histórica disponível
- [ ] Exportação em formatos editáveis
- [ ] Declarações de inexistência quando aplicável

### 6.3 Técnica

- [ ] HTTPS obrigatório
- [ ] URLs amigáveis
- [ ] Metadados adequados
- [ ] Dados estruturados (JSON-LD)
- [ ] Performance otimizada
- [ ] Backup configurado

### 6.4 Acessibilidade

- [ ] Símbolo de acessibilidade
- [ ] Breadcrumb
- [ ] Alto contraste
- [ ] Redimensionamento de texto
- [ ] Navegação por teclado
- [ ] Textos alternativos em imagens

### 6.5 Segurança

- [ ] HTTPS com certificado válido
- [ ] Headers de segurança
- [ ] Proteção contra XSS/CSRF
- [ ] Rate limiting na API
- [ ] Log de acessos
- [ ] Backup diário
