Skip to main content

Diagrama de Arquitetura

Componentes Detalhados do Projeto

1. Frontend (Flutter)

Telas Principais

  • Mapa com Rotas: Integração com google_maps_flutter ou mapbox_gl para exibição de mapas e trajetos.
  • Formulário de SOS: Interface com image_picker para captura e envio de fotos.
  • Lista de Horários dos Trens: Exibição dos horários atualizados dos trens.

Comunicação

  • Utilização dos pacotes http ou dio para chamadas assíncronas ao backend.

2. Backend (Python)

Framework

  • FastAPI: Ideal para APIs simples e rápidas.
  • Django: Recomendado para projetos que requerem mais recursos e robustez.

Endpoints Exemplo

  • POST /sos: Recebe fotos e detalhes do problema, salvando no banco de dados.
  • GET /rotas?origem=X&destino=Y: Retorna as melhores rotas combinando dados da CPTM e lógica personalizada.
  • GET /horarios: Retorna intervalos entre trens, utilizando cache de dados da API da CPTM.

3. Banco de Dados

OpçãoMelhor ParaExemplo de Uso
SQLiteProtótipo simplesApps pequenos, sem necessidade de escalabilidade.
PostgreSQLDados estruturadosRelacionamentos complexos (ex.: usuários x SOS).
FirebaseFotos e dados NoSQLArmazenamento de imagens do SOS + autenticação.

Fluxo de Dados (Exemplo: SOS)

Flutter

  1. Usuário tira foto e preenche formulário.
  2. Dados enviados para o endpoint POST /sos.

Backend (Python)

  1. Salva o texto no banco de dados.
  2. Armazena a foto no sistema de arquivos ou Firebase Storage.
  3. Envia notificação para a CPTM via API oficial.

Resposta

  • Retorna confirmação de sucesso ou mensagem de erro para o aplicativo.