← Voltar aos projetos
online · 2026

Roteirizador PetroKar

Planejamento de rotas de visita comercial com mapa interativo e cálculo de trajeto em tempo real

ReactTypeScriptSupabaseLeafletOSRMVite

SPA em React que resolve um problema operacional real: montar a sequência de visita a uma carteira de clientes geolocalizados. O sistema autentica o usuário, consulta a base no Supabase, calcula uma rota sugerida por vizinho mais próximo e entrega links prontos para Google Maps, Waze e WhatsApp.

Papel no projeto

Desenvolvedor único do projeto — do banco de dados (schema, RLS, triggers) até o front-end.

O problema

  • •Sequência de visitas montada manualmente, sem otimização de trajeto
  • •Cadastro de clientes disperso, sem geolocalização confiável
  • •Nenhuma forma rápida de compartilhar a rota com quem dirige

Objetivos

  • •Calcular uma ordem sugerida de visita a partir de um ponto de partida
  • •Exibir tudo em mapa interativo com status por cliente
  • •Gerar links diretos para navegação e compartilhamento
  • •Permitir gestão completa da carteira de clientes pela própria interface

Solução

Arquitetura

Front-end em React + TypeScript com Vite, autenticação e persistência no Supabase (Postgres + RLS por papel de usuário). Geocodificação via Nominatim/OpenStreetMap e cálculo de trajeto via OSRM público, com suporte a rotas de mais de 25 pontos dividindo o cálculo em trechos.

Experiência de uso

Importação/exportação de clientes em planilha (SheetJS + ExcelJS) com pré-visualização, detecção de duplicidade por CNPJ e geocodificação automática das linhas sem coordenadas. Exportação da rota final em PDF com QR code para abrir direto no Google Maps.

Decisões técnicas

  • •Supabase como backend único: Auth + Postgres + RLS, sem servidor próprio pra manter
  • •OSRM público em vez de serviço pago, com fallback por trechos para rotas grandes
  • •Consulta de CNPJ via BrasilAPI para preencher cadastro automaticamente e reduzir erro de digitação
  • •Histórico de rotas mantido em localStorage — dado descartável não precisa ir pro banco

Desafios

  • •Lidar com limite de pontos do OSRM público dividindo o cálculo em trechos sem perder a continuidade da rota
  • •Modelar RLS no Supabase para separar corretamente permissões de admin e viewer
  • •Gerar PDF com mini-mapa e QR code dependendo de serviços externos que podem falhar, com fallback gracioso