Pular para o conteúdo principal
← Voltar aos projetos Orquestrador de Rotas

Orquestrador de Rotas

Otimização de rotas (TSP) · 70+ paradas/dia · distâncias reais de condução

Next.js React TypeScript MapLibre GL Python Geocoding TSP Optimization PWA TailwindCSS

Visão geral

O Orquestrador de Rotas resolve uma restrição difícil: transformar 70+ paradas de entrega diárias em bruto na sequência de condução mais curta no mundo real. Minha esposa faz entregas diárias em Araxá, MG; o Google Maps e o Waze traçam o caminho entre pontos que você já ordenou, mas não otimizam a sequência de dezenas de paradas, o que gerava muito vai-e-vem pelo mesmo bairro.

Construí tudo de ponta a ponta, sozinho. Começou como uma CLI em Python que geocodifica CEPs/endereços crus e resolve o Problema do Caixeiro Viajante (TSP) usando distâncias reais de condução (não em linha reta), respeitando ruas de mão única, agrupando casas próximas e seguindo uma ordem de bairros pré-configurada. Depois evoluiu para uma PWA completa em Next.js 15, com mapa interativo, reordenação de paradas por arrastar-e-soltar, acompanhamento de rota ao vivo, histórico de rotas, calculadora de gastos e controle de lucro por rota.

Principais decisões técnicas

  • TSP com distâncias reais de condução: otimiza a ordem das paradas contra uma matriz de distância de ruas reais, não haversine, respeitando mão única e tempo real de deslocamento.
  • Pipeline de geocodificação automática: cole uma lista crua de endereços/CEPs; o sistema geocodifica cada um, agrupa casas próximas numa única parada e mantém um catálogo reutilizável de pessoas e casas.
  • PWA offline-first: feita com Next.js 15 + Serwist para o entregador rodar a rota com conexão móvel instável em campo.
  • UI operacional interativa: mapa MapLibre GL com marcadores otimizados numerados, ajuste manual por arrastar-e-soltar (dnd-kit) e TanStack Query para sincronização.

Resultados

Em uso diário em produção, planeja rotas de 70+ paradas e acompanha conclusão (95%+ das paradas concluídas), distância, duração e bruto/líquido por rota com margem de lucro. Substituiu planilhas e ordenação manual por uma única ferramenta que transforma uma lista crua de endereços numa rota otimizada e rastreável em segundos.

Stack: Next.js 15, TypeScript, React, MapLibre GL, dnd-kit, TanStack Query, Serwist (PWA), Tailwind e um motor de geocodificação/TSP em Python.

Galeria