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 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
- 📋 Cadastro, listagem, edição e exclusão de motos.
- 🧍 Cadastro e controle de clientes.
- 💸 Registro de vendas e aluguéis de motos.
- 🛠️ Indicação se a moto está em manutenção ou não.
- 🔐 API RESTful com rotas organizadas para facilitar o consumo por sistemas front-end.
- .NET 8 com ASP.NET Core
- Entity Framework Core (ORM)
- Oracle Database (via EF)
- Swagger para documentação da API
- REST API com padrões HTTP, JSON e HATEOAS
- C#
MotoHub/
├── Controllers/
│ ├── AluguelController.cs
│ ├── ClienteController.cs
│ ├── EstoqueController.cs
│ ├── ManutencaoController.cs
│ ├── MotoController.cs
│ ├── TesteController.cs
│ └── VendaController.cs
│
├── Models/
│ ├── Aluguel.cs
│ ├── Cliente.cs
│ ├── Estoque.cs
│ ├── Manutencao.cs
│ ├── Moto.cs
│ ├── Venda.cs
│ └── Hateoas/
│ └── (arquivos de suporte a HATEOAS)
│
├── Data/
│ └── MotoHubContext.cs
│
├── Dto/
├── Migrations/
├── Program.cs
└── MotoHub.csprojTodos os endpoints seguem o padrão REST.
| Verbo | Rota | Descrição |
|---|---|---|
| GET | /api/moto | Lista todas as motos |
| GET | /api/moto/{id} | Retorna uma moto específica |
| POST | /api/moto | Cadastra uma nova moto |
| PUT | /api/moto/{id} | Atualiza os dados de uma moto |
| DELETE | /api/moto/{id} | Exclui uma moto |
Outros endpoints seguem o mesmo padrão para
Clientes,Aluguel,Venda,ManutençãoeEstoque.
- Clone o repositório:
git clone https://github.com/codecrazes/Sprint1_.NET.git-Restaure as dependências e execute o projeto:
dotnet restore
dotnet run🌐 URL Base da API http://localhost:5090/swagger
POST /api/moto
{
"modelo": "Ninja",
"marca": "Kawasaki",
"ano": 2024,
"placa": "ABC1234",
"preco": 31000.50
}POST /api/aluguel
{
"motoId": 21,
"clienteId": 21,
"dataInicio": "2025-05-01T00:00:00",
"dataFim": "2025-05-10T00:00:00"
}POST /api/cliente
{
"nome": "Lucineia"
"cpf": "12345698800",
"telefone": "(11) 91234-5678",
"email": "lucineia@email.com"
}
POST /api/manutencao
{
"motoId": 21,
"data": "2025-09-29T22:27:08.123Z",
"descricao": "Troca de pastilhas de freio",
"custo": 320.50
}POST /api/venda
{
"motoId": 21,
"clienteId": 21,
"dataVenda": "2025-09-29T23:13:10.798Z",
"valor": 12000.50
}POST /api/estoque
{
"motoId": 21,
"quantidade": 10
}