ADR 0014 — Telas em React + MapLibre, mapa de fundo sem chave¶
Status: Aceita · Data: 09/11/2026
Contexto¶
O admin serve para cadastro, mas o dia a dia (achar uma CTO, ver portas livres, conferir o sinal de um cliente) precisa de um mapa, no PC e no celular do técnico em campo, e de uma tela própria para parceiros, que não entram no admin.
Decisão¶
- React 19 + Vite + TypeScript, na pasta
frontend/. Sem framework de CSS: um arquivo de estilos com variáveis de tema (Claro/Escuro/Sistema, ADR 0010). - MapLibre GL para o mapa (código aberto, sem conta nem chave).
- Mapa de fundo trocável por um botão: ruas do OpenStreetMap e satélite Esri World Imagery, ambos sem chave. Google Maps foi descartado por exigir chave e cartão.
- As telas são arquivos estáticos compilados na imagem do
nginxe servidos em/; falam só com a API (/api/), com a mesma sessão do login. Nenhum servidor Node em produção. - Responsivo: painel lateral no PC, gaveta inferior no celular; localização do aparelho no mapa (GPS).
- A rede vem de
/api/rede/mapa/em GeoJSON, já filtrada por usuário (parceiro só recebe CTOs).
Consequências¶
- Atualizar o sistema recompila as telas junto (
./scripts/atualizar.sh), sem passo extra. - Os servidores de mapa públicos têm limite de uso justo; para uso muito intenso, dá para trocar
por um provedor próprio de mapas só mudando
frontend/src/mapaEstilo.ts. - O CI confere tipos e compila as telas a cada envio.