Gestão de Rotas - Vanguru

Visão Geral

O sistema de gestão de rotas do Vanguru permite o planejamento, otimização e execução de rotas de transporte escolar, integrando navegação em tempo real, rastreamento GPS e notificações automáticas.

Funcionalidades Principais

Planejamento de Rotas

Criação Manual de Rotas

Informações Básicas: - Nome da Rota: Identificação (ex: "Manhã - Escola ABC") - Tipo: Ida ou Volta - Horário de Início: Horário planejado de partida - Passageiros: Seleção de passageiros da rota

Definição de Paradas: - Ordem manual de paradas (drag-and-drop) - Visualização no mapa - Endereços de coleta/entrega - Instituições de destino

Salvamento de Planejamentos

  • Reutilização de rotas recorrentes
  • Histórico de planejamentos
  • Duplicação de rotas existentes
  • Templates de rotas

Otimização de Rotas

Modo Free (Manual)

  • Algoritmo próprio de sugestão
  • Baseado em proximidade geográfica
  • Sem considerar trânsito em tempo real
  • Limitado a otimização manual

Modo Premium (Automático)

Google Directions API: - ✅ Cálculo automático da melhor ordem - ✅ Consideração de trânsito em tempo real - ✅ Otimização por tempo ou distância - ✅ Rotas alternativas - ✅ Estimativa precisa de tempo de chegada (ETA)

Benefícios: - Economia de Combustível: 10-20% - Economia de Tempo: 15-30 min/rota - Menor Desgaste: Menos km rodados - ROI: 25.000% - 50.000%

Execução de Rotas

Iniciar Execução

1. Usuário seleciona planejamento
2. Toca em "Iniciar Rota"
3. Sistema:
   - Cria registro de execução
   - Inicia rastreamento GPS
   - Calcula polylines no mapa
   - Ativa navegação turn-by-turn

Integração Google Maps: - Delegação para app Google Maps - Navegação por voz - Alertas de trânsito - Rotas alternativas em tempo real

Visualização no App: - Mapa com polylines - Marcadores de paradas - Posição atual (GPS) - Próxima parada destacada

Controle de Paradas

Marcar Parada como Concluída: - Hold-to-Confirm: Segurar botão por 2 segundos - Previne toques acidentais - Feedback visual e háptico - Timestamp de conclusão

Timeline de Execução: - Lista de paradas em ordem - Status: Pendente / Em Andamento / Concluída - Horário de conclusão - Passageiro(s) embarcado(s)

Notificações (Premium)

Push Notifications (FCM): - Notificação de início de rota - Alerta de chegada (próxima parada) - Notificação de atraso - Notificação de conclusão

Destinatários: - Responsáveis dos passageiros - Configurável por responsável

Histórico de Execuções

Armazenamento

Dados Salvos: - Data e hora de execução - Rota executada (snapshot) - Paradas e horários - Distância percorrida - Tempo total - Observações

Retenção: - Free: 90 dias - Premium: Ilimitado

Visualização

  • Lista de execuções passadas
  • Filtros por data, rota, tipo
  • Detalhes de cada execução
  • Replay no mapa (futuro)

Arquitetura de Dados

Estrutura no Firestore

plannings/
  {planningId}/
    - name: string
    - type: 'outbound' | 'return'
    - plannedStartTime: timestamp
    - stops: array<Stop>
    - businessOwnerId: string
    - createdAt: timestamp
    - updatedAt: timestamp

executions/
  {executionId}/
    - planningId: string (referência)
    - planningSnapshot: map (dados no momento)
    - startedAt: timestamp
    - completedAt: timestamp | null
    - status: 'in_progress' | 'completed' | 'canceled'
    - totalDistance: number (km)
    - totalDuration: number (minutos)
    - businessOwnerId: string

    boarding_events/ (subcoleção)
      {eventId}/
        - stopIndex: number
        - passengerId: string
        - timestamp: timestamp
        - location: geopoint

Modelo de Parada (Stop)

class Stop {
  final String id;
  final int order;
  final StopType type; // pickup, dropoff, institution
  final String? passengerId;
  final String? institutionId;
  final Address address;
  final DateTime? estimatedTime;
  final DateTime? actualTime;
  final StopStatus status;
}

Funcionalidades por Tier

Free Tier

  • ✅ Criação ilimitada de planejamentos
  • ✅ Execução com navegação
  • ✅ Histórico 90 dias
  • ✅ Otimização manual
  • ✅ Visualização no mapa
  • ✅ Timeline de execução
  • ✅ Mensagens manuais pré-prontas

Premium Tier

  • ✅ Tudo do Free
  • ✅ Otimização automática (Google API)
  • ✅ Histórico ilimitado
  • ✅ Push Notifications automáticas
  • ✅ Relatórios de execução
  • ✅ Estatísticas de performance
  • ✅ Exportação de dados

Fluxos de Uso

Criar Nova Rota

1. Usuário acessa "Rotas" → "Nova Rota"
2. Define informações básicas:
   - Nome
   - Tipo (Ida/Volta)
   - Horário de início
3. Seleciona passageiros
4. Define ordem de paradas:
   - Arrasta para reordenar OU
   - Usa otimização automática (Premium)
5. Visualiza no mapa
6. Salva planejamento

Executar Rota

1. Usuário seleciona planejamento
2. Toca "Iniciar Rota"
3. Sistema cria execução
4. Usuário navega seguindo o mapa
5. Ao chegar em cada parada:
   - Segura botão "Concluir Parada"
   - Sistema registra timestamp
   - (Premium) Envia notificação ao responsável
6. Ao concluir última parada:
   - Rota marcada como completa
   - Estatísticas calculadas
   - Salva no histórico

Otimizar Rota (Premium)

1. Usuário cria/edita rota
2. Seleciona passageiros
3. Toca "Otimizar Rota"
4. Sistema:
   - Envia requisição para Directions API
   - Considera trânsito atual
   - Calcula melhor ordem
   - Atualiza paradas
5. Usuário revisa ordem sugerida
6. Aceita ou ajusta manualmente
7. Salva planejamento otimizado

Integração com Google Maps

APIs Utilizadas

Maps SDK for Flutter: - Visualização de mapas - Marcadores customizados - Polylines de rotas - Controles de zoom/pan

Directions API (Premium): - Cálculo de rotas otimizadas - Consideração de trânsito - Waypoints optimization - Estimativas de tempo

Places API: - Autocomplete de endereços - Geocoding (endereço → coordenadas) - Reverse geocoding (coordenadas → endereço)

Custos

API Uso Custo Tier
Maps SDK Visualização Gratuito Free + Premium
Directions API Otimização R$ 1,00/usuário/mês Premium
Places API Autocomplete Cache local Free + Premium

Marcadores Customizados

Tipos de Marcadores

Parada de Passageiro: - Número sequencial (1, 2, 3...) - Cor: Azul (pendente), Verde (concluída) - Tamanho: 42x42 pixels

Instituição: - Ícone de escola/casa - Cor: Laranja - Tamanho: 42x42 pixels

Posição Atual: - Ícone de van/carro - Cor: Vermelho - Atualização em tempo real

Exclusividade

  • Parada de passageiro: Mostra número OU ícone de instituição
  • Lógica similar à timeline
  • Evita confusão visual

Notificações Automáticas (Premium)

Tipos de Notificações

Início de Rota: - Enviada ao iniciar execução - Para todos os responsáveis da rota - Mensagem: "Rota iniciada - Previsão de chegada: 08:30"

Chegada Iminente: - Enviada 5 minutos antes da parada - Apenas para responsável da próxima parada - Mensagem: "Chegando em 5 minutos"

Atraso: - Enviada se atraso > 10 minutos - Para responsáveis ainda não atendidos - Mensagem: "Rota atrasada - Nova previsão: 08:45"

Conclusão: - Enviada ao finalizar rota - Para todos os responsáveis - Mensagem: "Rota concluída - Todos os passageiros entregues"

Configurações

  • Responsável pode ativar/desativar notificações
  • Escolher canais (Push, Email, SMS)
  • Definir horários de silêncio

Melhorias Futuras

Roadmap

Q2 2026: - [ ] Replay de execuções no mapa - [ ] Estatísticas de performance (tempo médio, distância) - [ ] Comparação de rotas (antes/depois otimização)

Q3 2026: - [ ] Rotas recorrentes (segunda a sexta) - [ ] Calendário de execuções - [ ] Integração com calendário escolar

Q4 2026: - [ ] App para pais (rastreamento em tempo real) - [ ] Chat motorista-pais - [ ] Avaliação de rotas

2027: - [ ] Modo offline (mapas em cache) - [ ] Rotas compartilhadas (múltiplos motoristas) - [ ] API de integração

Métricas de Sucesso

  • Economia de Combustível: 10-20% (Premium)
  • Economia de Tempo: 15-30 min/rota (Premium)
  • Precisão de ETA: ±5 minutos
  • Satisfação: NPS > 8
  • Uso de Otimização: 70%+ dos usuários Premium

Documento: Gestão de Rotas
Versão: 1.0
Data: Janeiro 2026