O MotoHub é uma aplicação desenvolvida como parte do Challenge FIAP + Mottu, com o objetivo de facilitar o gerenciamento de motos para aluguel, venda e manutenção. O sistema foi desenvolvido com foco em escalabilidade, simplicidade, qualidade de código e integração com bancos de dados relacionais.
- Caroline Assis Silva — RM 557596
- Enzo de Moura Silva — RM 556532
- Luis Henrique Gomes Cardoso — RM 558883
- 📋 CRUD completo de motos
- 🧍 CRUD de clientes
- 💸 Registro de vendas e aluguéis
- 🛠️ Indicação de manutenção
- 🔗 HATEOAS implementado
- 🌐 Documentação com Swagger
- 🔑 Segurança com API Key
- ✅ Middleware personalizado validando API Key
- 🧪 Testes unitários com xUnit
- ❤️ Health Check para verificação de disponibilidade
- 🤖 Integração com Machine Learning (Modelo de Avaliação de Motos)
- .NET 8 (ASP.NET Core Web API)
- C#
- Entity Framework Core
- Oracle Database
- Swagger (Swashbuckle)
- API Key Authentication (custom middleware)
- xUnit (Testes Unitários)
- Machine Learning Model
- HATEOAS
git clone https://github.com/codecrazes/4Sprint.NET.git
cd 4Sprint.NET/MotoHub- Restaure as dependências e execute o projeto:
dotnet restore
dotnet runcd MotoHub.Testsdotnet testResumo do teste: total: 8; falhou: 0; bem-sucedido: 8; ignorado: 0Swagger disponível em:
A API utiliza segurança baseada em API Key, enviada no header:
minha-chave-super-secretaPOST /api/moto
{
"modelo": "CB 650R",
"marca": "Honda",
"ano": 2023,
"placa": "FTR9B21",
"preco": 48990.00
}POST /api/cliente
{
"nome": "Fernanda"
"cpf": "56238920466",
"telefone": "(11) 91503-1010",
"email": "fernanda@email.com"
}POST /api/aluguel
{
"motoId": 21,
"clienteId": 21,
"dataInicio": "2025-05-01T00:00:00",
"dataFim": "2025-05-10T00:00:00"
}Exemplo de Requisição:
{
"ano": 2025,
"km": 0,
"numeroDeManutencoes": 0
}{
"ano": 2019,
"km": 45000,
"numeroDeManutencoes": 3
}{
"ano": 2014,
"km": 90000,
"numeroDeManutencoes": 6
}