Nossa solução para a Global Solution consiste em uma aplicação voltada para a previsão de possíveis desastres naturais, levando em consideração a localização do usuário.
A aplicação coleta dados atualizados da previsão do tempo e a posição geográfica do usuário, utilizando essas informações junto a um modelo de inteligência artificial para prever a chance de ocorrência de desastres naturais em sua região.
Com base nessa previsão, o sistema envia alertas classificados em três níveis: baixo, médio e grave permitindo avisar cada pessoa com precisão e antecedência.
Além disso, o usuário poderá adicionar grupos de localização, como a casa de familiares, o local de trabalho ou outros pontos de interesse. Dessa forma, ele receberá alertas personalizados para essas regiões também, ajudando na prevenção e no planejamento diante de possíveis enchentes ou outros eventos climáticos extremos.
Caso queira, abaixo segue também repositório de inteligência artificial:
- Controllers/: Camada de entrada da API, responsável por receber e responder às requisições HTTP.
- Models/: Classes que representam as entidades do domínio (ex: Usuario, Alerta, Bairro, Estado, etc).
- Services/: Camada de lógica de negócio, responsável por validar e processar as operações.
- Repository/: Camada de acesso a dados, responsável pela comunicação com o banco de dados.
- Validations/: Classes de validação para garantir integridade dos dados.
- Connection/: Configuração do contexto do banco de dados (Entity Framework).
- Exceptions/: Exceções customizadas para tratamento de erros.
O projeto utiliza o Entity Framework Core para acesso a dados e segue o padrão de arquitetura em camadas (Controller → Service → Repository).
- Cadastro, consulta, atualização e remoção de usuários, alertas, endereços, bairros, cidades, estados, previsões, países e grupos de endereço.
- Validações robustas para garantir integridade dos dados.
- Tratamento de exceções customizadas para respostas claras ao cliente.
- .NET 9.0
- Entity Framework Core
- Oracle Database (conforme string de conexão em
appsettings.json) - ASP.NET Core Web API
Abaixo está o diagrama lógico da arquitetura do sistema, ilustrando a relação entre as principais entidades e camadas da aplicação:
- .NET SDK 9.0 ou superior
- Acesso ao banco de dados Oracle
-
Clone o repositório:
git clone https://github.com/GSNimbus/DotNet cd NimbusApi/NimbusApi -
Restaure os pacotes e compile:
dotnet restore dotnet build
-
Execute a aplicação:
dotnet run
-
Acesse a API via http://localhost:7216
-
Acesso ao swagger em: http://localhost:7216/swagger/index.html
-
GET https://localhost:7216/api/Usuario— Lista todos os usuários -
POST https://localhost:7216/api/Usuario— Cria um novo usuário -
POST https://localhost:7216/api/Usuario/postAll— Cria um novo usuário com dados completos -
GET https://localhost:7216/api/Usuario/{id}— Busca usuário por ID -
GET https://localhost:7216/api/Usuario/email/{email}— Busca usuário por e-mail -
GET https://localhost:7216/api/Alerta— Lista todos os alertas -
GET https://localhost:7216/api/Alerta/{id}— Busca alerta por ID -
POST https://localhost:7216/api/Alerta— Cria um novo alerta -
PUT https://localhost:7216/api/Alerta/{id}— Atualiza um alerta -
DELETE https://localhost:7216/api/Alerta/{id}— Remove um alerta -
GET https://localhost:7216/api/Endereco— Lista todos os endereços -
GET https://localhost:7216/api/Endereco/{id}— Busca endereço por ID -
GET https://localhost:7216/api/Endereco/cep/{cep}— Busca endereço pelo CEP -
POST https://localhost:7216/api/Endereco— Cria um novo endereço -
PUT https://localhost:7216/api/Endereco/{id}— Atualiza um endereço -
DELETE https://localhost:7216/api/Endereco/{id}— Remove um endereço -
GET https://localhost:7216/api/Bairro— Lista todos os bairros -
GET https://localhost:7216/api/Bairro/{id}— Busca bairro por ID -
GET https://localhost:7216/api/Bairro/nome/{nomeBairro}— Busca bairro por nome -
POST https://localhost:7216/api/Bairro— Cria um novo bairro -
PUT https://localhost:7216/api/Bairro/{id}— Atualiza um bairro -
DELETE https://localhost:7216/api/Bairro/{id}— Remove um bairro -
GET https://localhost:7216/api/Estado— Lista todos os estados -
GET https://localhost:7216/api/Estado/{id}— Busca estado por ID -
GET https://localhost:7216/api/Estado/nome/{nomeEstado}— Busca estado por nome -
POST https://localhost:7216/api/Estado— Cria um novo estado -
PUT https://localhost:7216/api/Estado/{id}— Atualiza um estado -
DELETE https://localhost:7216/api/Estado/{id}— Remove um estado -
GET https://localhost:7216/api/Cidade— Lista todas as cidades -
GET https://localhost:7216/api/Cidade/{id}— Busca cidade por ID -
GET https://localhost:7216/api/Cidade/nome/{nomeCidade}— Busca cidade por nome -
POST https://localhost:7216/api/Cidade— Cria uma nova cidade -
PUT https://localhost:7216/api/Cidade/{id}— Atualiza uma cidade -
DELETE https://localhost:7216/api/Cidade/{id}— Remove uma cidade -
GET https://localhost:7216/api/Localizacao— Lista todas as localizações -
GET https://localhost:7216/api/Localizacao/{id}— Busca localização por ID -
POST https://localhost:7216/api/Localizacao— Cria uma nova localização -
PUT https://localhost:7216/api/Localizacao/{id}— Atualiza uma localização -
DELETE https://localhost:7216/api/Localizacao/{id}— Remove uma localização -
GET https://localhost:7216/api/Pais— Lista todos os países -
GET https://localhost:7216/api/Pais/{id}— Busca país por ID -
GET https://localhost:7216/api/Pais/nome/{nomePais}— Busca país por nome -
POST https://localhost:7216/api/Pais— Cria um novo país -
PUT https://localhost:7216/api/Pais/{id}— Atualiza um país -
DELETE https://localhost:7216/api/Pais/{id}— Remove um país -
GET https://localhost:7216/api/GpEndereco— Lista todos os grupos de endereço -
GET https://localhost:7216/api/GpEndereco/{id}— Busca grupo de endereço por ID -
GET https://localhost:7216/api/GpEndereco/nome/{nome}— Busca grupo de endereço por nome -
GET https://localhost:7216/api/GpEndereco/usuario/{usuarioId}— Lista grupos de endereço por usuário -
POST https://localhost:7216/api/GpEndereco— Cria um novo grupo de endereço -
PUT https://localhost:7216/api/GpEndereco/{id}— Atualiza um grupo de endereço -
DELETE https://localhost:7216/api/GpEndereco/{id}— Remove um grupo de endereço -
GET https://localhost:7216/api/Previsao— Lista todas as previsões -
GET https://localhost:7216/api/Previsao/{id}— Busca previsão por ID -
GET https://localhost:7216/api/Previsao/bairro/{id}— Lista previsões por bairro -
POST https://localhost:7216/api/Previsao— Cria uma nova previsão -
PUT https://localhost:7216/api/Previsao/{id}— Atualiza uma previsão -
DELETE https://localhost:7216/api/Previsao/{id}— Remove uma previsão -
POST https://localhost:7216/api/Previsao/prever/{idBairro}— Realiza previsão meteorológica para um bairro (endpoint inteligente)
Consulte os controllers para mais endpoints.
Você pode testar os endpoints utilizando ferramentas como Swagger, Postman ou curl.
POST https://localhost:7216/api/Usuario
Content-Type: application/json
{
"nome": "Maria",
"email": "maria@email.com",
"senha": "123456"
}GET https://localhost:7216/api/Usuario/1GET https://localhost:7216/api/Endereco/cep/12345-678