Backend de alta performance para gestão de corridas urbanas com processamento assíncrono, arquitetura de microsserviços e Frontend Enterprise.
Este projeto simula um ecossistema completo de mobilidade urbana (semelhante a Uber/99), onde a alta concorrência de transações e a consistência de dados são tratadas utilizando mensageria (RabbitMQ), cache distribuído (Redis) e persistência NoSQL (MongoDB).
O sistema conta com um Dashboard Enterprise desenvolvido com HTML5, TailwindCSS e JavaScript Puro, operando como uma Single Page Application (SPA) para monitoramento em tempo real.
Monitoramento de KPIs, solicitação de corridas e feed de transações em tempo real via WebSocket/Polling.

Algoritmo no Frontend processa os dados brutos da API para gerar métricas de desempenho individual dos motoristas.

Análise de distribuição de pagamentos e cálculo de Ticket Médio da operação.

A API foi construída focando em performance e documentação automática (OpenAPI 3.1).
Todos os endpoints são documentados e testáveis via navegador.

Validação rigorosa de tipos de dados na entrada (Request) e saída (Response) para garantir integridade.

O projeto possui uma suíte de testes automatizada utilizando pytest e TestContainers (mocks), garantindo que a lógica de negócios funcione isoladamente da infraestrutura.
- Linguagem: Python 3.11
- Web Framework: FastAPI (Alta performance)
- Mensageria: RabbitMQ + FastStream (Processamento Assíncrono)
- Banco de Dados: MongoDB (Persistência de Corridas)
- Cache & Sessão: Redis (Gestão de Saldo Atômica)
- Infraestrutura: Docker & Docker Compose
- Frontend: Nginx Server (SPA)
O sistema resolve o problema de concorrência de saldo (Race Conditions) utilizando um fluxo orientado a eventos:
- API Gateway: Recebe
POST /corridas, salva comopendenteno Mongo e retorna201 Created. - Producer: Publica evento na fila
corridas_queue(RabbitMQ). - Worker:
- Consome a fila assincronamente.
- Executa
INCRBYFLOATno Redis (Operação Atômica). - Atualiza status para
processadano MongoDB.
transflow-backend/
├── assets/ # Evidências (Prints)
│ ├── backend_post.png
│ ├── post.png
│ ├── front1.png
│ ├── front2.png
│ ├── front3.png
│ └── pytest.png
├── frontend/ # Aplicação Web (SPA)
│ ├── Dockerfile # Configuração Nginx
│ ├── index.html # Estrutura HTML
│ ├── script.js # Lógica (API + Gráficos)
│ └── styles.css # Estilos e Animações
├── src/ # Código Fonte Backend
│ ├── database/ # Camada de Persistência
│ │ ├── mongo_client.py # Driver Motor (MongoDB)
│ │ └── redis_client.py # Driver Redis (Cache)
│ ├── models/ # Camada de Dados
│ │ └── corrida_model.py # Schemas Pydantic (Validação) # Schemas Pydantic
│ ├── config.py # Configurações Gerais
│ ├── consumer.py # Worker RabbitMQ
│ ├── main.py # API Server
│ └── producer.py # Publicador de Eventos
├── tests/ # Testes Automatizados
│ └── test_api.py
├── .env # Variáveis de Ambiente
├── docker-compose.yml # Orquestração de Containers
├── Dockerfile # Imagem do Backend
├── README.md # Documentação Oficial
└── requirements.txt # Dependências Python- Docker e Docker Compose instalados.
-
Clone o repositório:
git clone [https://github.com/BeiruthDEV/transflow-backend.git](https://github.com/BeiruthDEV/transflow-backend.git) cd transflow-backend -
Suba o ambiente:
docker-compose up --build
-
Acesse:
- Dashboard: http://localhost
- API Docs: http://localhost:8000/docs
Para validar a aplicação dentro do container:
docker-compose exec app python -m pytest -v
