API RESTful para gestão de frotas, motoristas e utilizações. Arquitetura escalável, testes automatizados, documentação OpenAPI e pronta para produção. Foco em facilidade de manutenção, evolução e integração real.
O Vehicle Control System API é uma solução robusta para gestão de frotas, motoristas e utilizações, desenvolvida com Clean Code, SOLID, testes automatizados e documentação profissional.
Feature | Descrição |
---|---|
CRUD Automóveis | Cadastro, listagem, busca, edição e remoção de automóveis. |
CRUD Motoristas | Cadastro, listagem, busca, edição e remoção de motoristas. |
Utilização de Automóveis | Início/fim de uso, histórico, paginação, regras de negócio. |
Health Check | Endpoint /health para monitoramento. |
Rate Limiting | Proteção contra abuso de requisições. |
Validação de Dados | Validação robusta via express-validator. |
Documentação OpenAPI/Swagger | Especificação completa e playground interativo. |
Testes Unitários e Integração | Cobertura total com Jest e Supertest. |
Deploy Docker e Render | Pronto para produção e cloud. |
Clean Code & SOLID | Código limpo, modular, fácil de manter. |
controle/
├── src/
│ ├── api/
│ │ ├── automoveis/
│ │ ├── health/
│ │ ├── motoristas/
│ │ └── utilizacoes/
│ ├── middlewares/
│ ├── utils/
│ ├── app.js
│ └── server.js
├── tests/
│ ├── unit/
│ └── integration/
├── openapi.yaml
├── render.yaml
├── Dockerfile
├── package.json, .env, etc.
git clone https://github.com/FuturoDevJunior/SEIDOR_RH.git
cd SEIDOR_RH
npm install
cp .env.example .env # Ajuste as variáveis se necessário
npm run dev
npm start
docker build -t controle-automoveis-api .
docker run -p 3000:3000 -e PORT=3000 controle-automoveis-api
Após instalar as dependências, execute:
npm test
npm test
npm run coverage
(relatório local em coverage/lcov-report/index.html
).openapi.yaml
GET /health
— Health check.POST /api/automoveis
— Criar automóvel.GET /api/automoveis
— Listar automóveis.GET /api/automoveis/:id
— Buscar automóvel.PUT /api/automoveis/:id
— Atualizar automóvel.DELETE /api/automoveis/:id
— Remover automóvel.POST /api/motoristas
— Criar motorista.GET /api/motoristas
— Listar motoristas.GET /api/motoristas/:id
— Buscar motorista.PUT /api/motoristas/:id
— Atualizar motorista.DELETE /api/motoristas/:id
— Remover motorista.POST /api/utilizacoes
— Iniciar utilização.PATCH /api/utilizacoes/:id/finalizar
— Finalizar utilização.GET /api/utilizacoes
— Listar utilizações (paginação).curl -X POST https://seidor-rh.onrender.com/api/automoveis \
-H 'Content-Type: application/json' \
-d '{"placa": "ABC-1234", "cor": "Azul", "marca": "MarcaXYZ"}'
Resposta:
{
"id": "gerado-pelo-uuid",
"placa": "ABC-1234",
"cor": "Azul",
"marca": "MarcaXYZ"
}
curl "https://seidor-rh.onrender.com/api/utilizacoes?page=1&limit=10"
Resposta:
{
"items": [
{
"id": "uuid-da-utilizacao",
"motoristaId": "uuid-do-motorista",
"automovelId": "uuid-do-automovel",
"dataInicio": "2024-07-31T12:00:00.000Z",
"dataFim": null,
"motivoUtilizacao": "Viagem a serviço",
"motorista": { "id": "uuid-do-motorista", "nome": "Nome do Motorista" },
"automovel": { "id": "uuid-do-automovel", "placa": "ABC-1234", "marca": "Marca", "cor": "Cor" }
}
],
"totalItems": 1,
"totalPages": 1,
"currentPage": 1,
"itemsPerPage": 10
}
Sinta-se à vontade para contribuir!
Siga os passos:
git checkout -b feature/NovaFeature
.git commit -m 'feat: Nova feature'
.git push origin feature/NovaFeature
.Sugestões, dúvidas ou bugs? Abra uma issue!
Consulte o CONTRIBUTING.md para mais detalhes.
Distribuído sob a licença ISC.
Veja o campo “license” do package.json
para mais informações.
Desenvolvido por Gabriel Ferreira.
Agradecimentos especiais a todos os contribuidores, à comunidade Node.js e aos mantenedores de ferramentas open source!
Este projeto é resultado de paixão por tecnologia, atenção a detalhes e compromisso com excelência. Se você busca alguém com visão de produto, foco em qualidade e espírito colaborativo, vamos conversar!
Powered by DevFerreiraG