Aplicação React que carrega um mapa da Bahia e destaca, por meio de marcadores, todos os municípios participantes do programa PTI. O objetivo não é mais selecionar municípios, mas visualizar rapidamente quais localidades do estado fazem parte do programa.
Para rodar a aplicação localmente ou realizar o deploy no Netlify, as seguintes variáveis de ambiente devem ser configuradas:
| Variável | Escopo | Descrição | Exemplo / Valor Padrão |
|---|---|---|---|
VITE_SHAREPOINT_URL |
Build / Server / Client | URL do link de download direto da planilha oficial de dados no SharePoint. | https://prodeboffice365-my.sharepoint.com/:x:/g/personal/sdc_secti_ba_gov_br/... |
VITE_OPENROUTER_API_KEY |
Client (Opcional) | Chave da API OpenRouter utilizada pelos recursos de IA e assistente. | sk-or-v1-... |
- Copie o arquivo de exemplo para o seu ambiente local:
cp .env.example .env
- Abra o arquivo
.enve preencha a URL do SharePoint ou sua API Key se necessário.
Ao realizar o onboarding do projeto no Netlify:
- Acesse o painel do site no Netlify: Site configuration
$\rightarrow$ Environment variables. - Adicione as seguintes chaves:
-
VITE_SHAREPOINT_URL:https://prodeboffice365-my.sharepoint.com/:x:/g/personal/sdc_secti_ba_gov_br/IQCUmr5J0kxUQLKb9lRqZkT_AVOgJRieO_TN9lJiRxUzXI8?download=1 -
VITE_OPENROUTER_API_KEY: (opcional - conforme o seu ambiente)
-
-
Netlify Blobs: Certifique-se de que a funcionalidade Netlify Blobs está habilitada no projeto para que as Netlify Functions (
sharepoint.jsesharepoint-refresh.js) possam manter o cache de dados em produção.
O projeto possui uma suíte de testes unitários automatizados cobrindo normalizações, expansões de nomes e filtros.
Para executar os testes:
# Executa todos os testes unitários uma vez
npm test
# Executa os testes no modo interativo (watch mode)
npm run test:watchmapfilter-BA/
├── src/
│ ├── App.jsx ← Componente de alto nível que exibe o mapa
│ ├── PtiMap.jsx ← Mapa interativo com pontos PTI
│ └── utils/
│ ├── Municipios.js ← Lista dos 417 municípios da Bahia (para colorização)
│ └── territorioMunicipios.json ← Agrupamento por territórios (usado para cores opcionais)
└── public/
├── BA_(1)9396399957704198.json ← TopoJSON do mapa da Bahia (~3.9 MB)
└── ptiMunicipios.json ← Lista dos 133 municípios atendidos pelo programa
npm install topojson-client lucide-reactTailwind CSS também é necessário e deve estar configurado no projeto.
| Arquivo | Destino sugerido (Vite/CRA) |
|---|---|
PtiMap.jsx |
src/components/ (ou o local de sua preferência) |
utils/Municipios.js |
src/utils/ |
utils/territorioMunicipios.json |
src/utils/ |
public/BA_(1)9396399957704198.json |
public/ (raiz pública) |
public/ptiMunicipios.json |
public/ |
Ajuste os imports no topo de
PtiMap.jsxcaso altere os caminhos dos utilitários.
Para importar JSON com assert { type: 'json' } no Vite, certifique-se que resolveJsonModule: true está no tsconfig ou não há nenhuma configuração bloqueando import de JSON.
import PtiMap from './PtiMap';
export default function App() {
return <PtiMap />;
}(O componente PtiMap não recebe props; ele carrega automaticamente os dados e renderiza o mapa.)
- Mapa SVG vetorial interativo da Bahia com zoom (0.5x–4x) e pan por arrasto
- Municípios participantes do PTI são destacados com a cor do seu território; os demais aparecem esmaecidos em cinza
- Círculos vermelhos no centro de cada município que participa do programa PTI Bahia
- Tooltip ao passar o mouse mostrando nome do município e indicação de pertencimento ao PTI
- Legenda simples explicando o marcador
Removidas as opções de filtro, seleção e lista lateral – o foco agora é apenas a visualização dos pontos do programa.
| Pacote | Versão mínima | Uso |
|---|---|---|
react |
17+ | Framework (peer dependency) |
topojson-client |
3.1+ | Converte TopoJSON → GeoJSON para renderizar o SVG |
tailwindcss |
3+ | Estilização via classes utilitárias |
- TopoJSON (
BA_(1)9396399957704198.json): geometria vetorial de todos os 417 municípios da Bahia. Fonte: IBGE. - Territórios de Identidade (
territorioMunicipios.json): agrupamento dos 27 territórios definidos pela SEPLAN/BA, usado apenas para colorização por território. - PTI Bahia (
ptiMunicipios.json): lista dos municípios atendidos pelo programa; utilizada para posicionar os pontos no mapa.