Este repositório contém a especificação de requisitos e a arquitetura inicial para um sistema interno de despacho e controle operacional (CAD - Computer-Aided Dispatch) voltado para o corpo de bombeiros. O sistema foi projetado para centralizar o atendimento de chamados, a gestão de frotas de veículos emergenciais, o controle de bases físicas e o monitoramento geoespacial em tempo real.
O objetivo principal do sistema é otimizar o tempo de resposta a emergências e centralizar a gestão operacional das forças de resgate. Ele atua como uma ferramenta interna para a central de operações (ex: 193), permitindo que os operadores recebam chamados telefônicos, realizem a triagem das ocorrências, gerenciem a frota de veículos disponíveis e façam o despacho inteligente de recursos com base na proximidade e na gravidade do incidente.
- Operadores da Base / Central de Operações: Responsáveis por receber as ligações de emergência, registrar as informações essenciais da ocorrência no sistema, realizar a triagem de prioridade e despachar as viaturas adequadas para o local.
- Guarnições / Bombeiros nas Viaturas: Responsáveis por operar os veículos de atendimento. Eles interagem com o sistema para atualizar o status operacional da viatura (em deslocamento, no local, disponível) e preencher relatórios técnicos pós-atendimento.
O sistema foi estruturado com base em quatro pilares fundamentais de dados interconectados:
- Bases: Representa as unidades físicas (quartéis) e centrais de comando.
- Ocorrências: Representa os incidentes e chamados de socorro ativos ou encerrados.
- Veículos: Representa a frota operacional de viaturas especializadas.
- Mapa: Interface geográfica responsável pelo rastreamento e cálculo de rotas em tempo real.
O sistema é composto por três microsserviços independentes que se comunicam via REST.
| Serviço | Repositório | Porta | Responsabilidade |
|---|---|---|---|
| servico-ocorrencia | Bombeiro-api/servico-ocorrencia | 5090 | Registro e gestão de ocorrências |
| servico-mapa | Bombeiro-api/servico-mapa | 5089 | Cálculo de rotas e despacho de viaturas |
| servico-veiculos | Bombeiro-api/servico-veiculos | 5091 | Gestão de corporações, viaturas e bombeiros |
sequenceDiagram
actor Operador
participant Ocorrencia as servico-ocorrencia
participant Mapa as servico-mapa
participant Veiculos as servico-veiculos
participant Google as Google Maps API
Operador->>Ocorrencia: POST /api/ocorrencia
Ocorrencia->>Mapa: POST /api/mapa/rota-mais-proxima
Mapa->>Veiculos: GET /api/corporacao
Veiculos-->>Mapa: corporações com viaturas disponíveis
Mapa->>Google: Distance Matrix API
Google-->>Mapa: tempo de deslocamento por corporação
Mapa->>Veiculos: PATCH /api/viatura/{id}/status → EmDeslocamento
Mapa->>Google: Directions API
Google-->>Mapa: rota completa, distância e tempo estimado
Mapa-->>Ocorrencia: corporação, viatura, rota
Ocorrencia-->>Operador: ocorrência registrada com despacho
- .NET 8
- ASP.NET Core Web API
- Entity Framework Core (Code First)
- SQLite
- Scalar (documentação interativa)
- RF01 - Cadastro de Bases/Quartéis: O sistema deve permitir o cadastro de múltiplas bases físicas, definindo sua localização geográfica exata e sua respectiva área de jurisdição operacional.
- RF02 - Atendimento de Chamados: O sistema deve fornecer uma interface de entrada rápida para que o operador registre os dados essenciais coletados via telefone (nome do solicitante, contato, descrição da emergência).
- RF05 - Ciclo de Vida da Ocorrência: O sistema deve permitir a criação, edição, visualização e o encerramento formal de registros de ocorrência pelos operadores autorizados.
- RF07 - Despacho de Viaturas: O sistema deve sugerir e permitir a vinculação de veículos específicos a uma ocorrência com base na natureza do chamado (ex: enviar uma ambulância para acidentes com vítimas ou caminhão Auto Bomba para incêndios).
- RF08 - Cadastro de Frota: O sistema deve permitir o registro detalhado de todas as viaturas, armazenando informações como tipo (ABTR, ASU, Auto Escada), placa, prefixo de rádio e capacidades técnicas.
- RF09 - Controle de Status Operacional: O sistema deve permitir a atualização e visualização em tempo real do estado de cada viatura (ex: "Disponível na Base", "Em Deslocamento", "No Local", "Em Manutenção").
- RF10 - Gestão de Guarnição: O sistema deve permitir registrar quais bombeiros estão escalados em cada viatura durante um turno de serviço, diretamente no cadastro da viatura.
- RF11 - Controle de Insumos e Suprimentos: O sistema deve permitir o registro rápido do status de materiais críticos pós-atendimento (ex: nível de água no tanque, cilindros de oxigênio utilizados, combustível).
- RF14 - Cálculo e Sugestão de Rotas: O sistema deve calcular a rota mais rápida entre a localização da base de origem e o ponto exato da ocorrência, retornando distância estimada, tempo de deslocamento e passos da rota.