O FSRouter é um sistema completo para acompanhamento de rotas de motoristas em tempo real, ideal para vans, ônibus, transporte escolar, frota corporativa e serviços de mobilidade.
O objetivo principal é permitir que usuários visualizem, no celular, a posição atual de um motorista e o percurso planejado no mapa, de forma semelhante ao que ocorre em aplicativos como Uber, Waze e 99.
Este projeto foi desenvolvido com foco em alta performance, experiência de usuário clara e arquitetura escalável, permitindo futuras integrações com IA.
- React Native (Expo)
- React Native Maps (Google Maps SDK)
- WebSockets para atualização em tempo real
- AsyncStorage para gestão do token JWT
- Spring Boot
- WebSocket nativo para streaming da localização
- RESTful API para autenticação e gerenciamento de dados
- Integração com Google Maps (Directions API)
-
PostgreSQL
Para dados fixos e estruturados (usuários, motoristas, veículos, rotas registradas). -
Redis
Para armazenamento volátil da posição atual dos motoristas e comunicação real-time.
- Microserviço Python (FastAPI)
- Modelos de machine learning ou LLM para:
- Previsão de ETA
- Análise de tráfego
- Sugestão de rotas
- Assistente inteligente dentro do app
React Native <—WS—> Spring Boot <—> Redis
\—REST—> Spring Boot <—> PostgreSQL
Spring Boot <—REST—> Microserviço Python (IA)- O motorista envia sua localização a cada 3–5 segundos.
- O backend Spring Boot atualiza o Redis com a posição atual.
- Usuários conectados recebem atualizações via WebSocket em tempo real.
- O app exibe a localização no mapa usando Google Maps.
- (Opcional) O módulo Python processa dados e devolve previsões ou insights.
- Visualização do motorista no mapa em tempo real
- Linha da rota (polyline) baseada na Directions API
- Estimativa de chegada (ETA)
- Notificação quando o motorista estiver próximo
- App dedicado para enviar localização periodicamente
- Autenticação e controle de sessão
- Caminho planejado exibido diretamente no mapa
- Cadastro de motoristas e veículos
- Definição de rotas
- Histórico de deslocamentos (salvo via PostgreSQL)
O FSRouter utiliza recursos do Google Maps Platform, incluindo:
- Directions API → gerar rota exata entre os pontos
- Geocoding → converter endereço em coordenadas
- Maps SDK → renderização no app
Caso o budget seja limitado, a arquitetura também permite a troca por:
- Mapbox
- OpenStreetMap + OSRM
POST /auth/loginPOST /driver/locationGET /route/{id}GET /driver/{id}/location- WebSocket
/ws/locationpara streaming
- User
- Driver
- Vehicle
- Route
- StopPoints
- LocationHistory
driver:{id}:locationroute:{id}:polyline
O Redis é usado como camada de estado atual.
A cada atualização:
- Backend grava a nova localização no Redis
- WebSocket envia para todos os clientes conectados
- RN atualiza a animação do marcador no mapa
Isso evita sobrecarga no banco relacional e garante latência mínima.
O projeto já está desenhado para receber um microserviço em Python capaz de:
- Prever horários de chegada (ETA preditivo)
- Identificar atrasos recorrentes
- Criar clusters de paradas para otimizar rotas
- Gerar rotas alternativas
- Atuar como assistente inteligente dentro do app
A comunicação será feita via REST ou gRPC.
mvn clean install
java -jar target/fsrouter.jarnpm install
npx expo startRedis e PostgreSQL (Docker)
docker compose up -dO FSRouter foi pensado para demonstrar:
Arquitetura de nível profissional
Conhecimento em real-time, mapas e backend robusto
Integração entre diversas tecnologias modernas
Capacidade de evoluir para soluções inteligentes com IA
É um projeto de portfólio que simula um produto real de mercado, com potencial para ser usado por escolas, empresas de transporte e serviços de mobilidade.
Este projeto é open-source para fins de estudo e demonstração.