API de Reserva de veiculos escrita em TypeScript utilizando o framework NestJS e um banco MongoDB, documentada com Swagger. Token JWT para autenticar. Containerizada com Docker, rodando via Docker-Compose.
Ainda há muito trabalho pela frente, como por exemplo, criptografia da senha dos usuários no banco, reorganização de código, etc.
Para rodar o projeto, primeiro adicione o arquivo .env enviado por email à raiz do projeto e rode o seguinte comando (necessário docker-compose):
docker-compose -f "docker-compose.yml" --env-file .env up -d --build
Para ver os logs e se a aplicação está completamente iniciada, use o comando
docker logs --tail 1000 -f vehicle-booking-api_app_1
Documentação Swagger -> http://localhost:3000/docs
Health-check -> http://localhost:3000 [GET]
Usuarios Disponíveis -> http://localhost:3000/users [GET]
Usuarios Específico -> http://localhost:3000/users/:id [GET]
Criar Usuário -> http://localhost:3000/users [POST]
Login -> http://localhost:3000/auth/login [POST]
Após o Login, adicione o access_token recebido ao header das requisições(Bearer token)
Listar veículos -> http://localhost:3000/vehicles [GET]
Reservar veículo -> http://localhost:3000/vehicles/reserve/:id [PATCH]
Retornar veículo -> http://localhost:3000/vehicles/return/:id [PATCH]
Um usuário logado só pode ter um único veículo alugado e só pode devolver o próprio veículo.
Para saber qual veículo está e posse de certo usuário, veja o id no campo vehicle na lista de usuários ou no get users/:id