Skip to content

felipereira10/FSRoute

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FSRouter — Monitoramento de Rotas em Tempo Real

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.


🚀 Tecnologias Utilizadas

Frontend (Mobile)

  • React Native (Expo)
  • React Native Maps (Google Maps SDK)
  • WebSockets para atualização em tempo real
  • AsyncStorage para gestão do token JWT

Backend

  • 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)

Banco de Dados

  • 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.

Serviço de IA (Futuro)

  • 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

🧠 Visão Geral da Arquitetura

React Native <—WS—> Spring Boot <> Redis

\—REST—> Spring Boot <> PostgreSQL

Spring Boot <—REST—> Microserviço Python (IA)

Fluxo simplificado

  1. O motorista envia sua localização a cada 3–5 segundos.
  2. O backend Spring Boot atualiza o Redis com a posição atual.
  3. Usuários conectados recebem atualizações via WebSocket em tempo real.
  4. O app exibe a localização no mapa usando Google Maps.
  5. (Opcional) O módulo Python processa dados e devolve previsões ou insights.

📱 Funcionalidades

Para usuários

  • 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

Para motoristas

  • App dedicado para enviar localização periodicamente
  • Autenticação e controle de sessão
  • Caminho planejado exibido diretamente no mapa

Para administradores

  • Cadastro de motoristas e veículos
  • Definição de rotas
  • Histórico de deslocamentos (salvo via PostgreSQL)

🗺️ Google Maps Integration

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

🧩 Estrutura do Backend (Spring Boot)

Endpoints principais

  • POST /auth/login
  • POST /driver/location
  • GET /route/{id}
  • GET /driver/{id}/location
  • WebSocket /ws/location para streaming

Entidades

  • User
  • Driver
  • Vehicle
  • Route
  • StopPoints
  • LocationHistory

Redis Keys

  • driver:{id}:location
  • route:{id}:polyline

📡 Real-Time com Redis + WebSockets

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.


🤖 Módulo de IA (Extensões Futuras)

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.


📦 Como rodar o projeto (visão geral)

Backend (Spring Boot)

mvn clean install
java -jar target/fsrouter.jar

Frontend (React Native)

npm install
npx expo start

Redis e PostgreSQL (Docker)

docker compose up -d

🎯 Objetivo do Projeto

O 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.

📄 Licença

Este projeto é open-source para fins de estudo e demonstração.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors