https://github.com/maxsonferovante/ignite-nodejs-rentx
Tem como objetivo criar um sistema de gerenciamento para uma empresa de aluguel de carros
https://github.com/maxsonferovante/ignite-nodejs-rentx
express jwt-authentication nodejs postgresql typeorm typescript
Last synced: 3 months ago
JSON representation
Tem como objetivo criar um sistema de gerenciamento para uma empresa de aluguel de carros
- Host: GitHub
- URL: https://github.com/maxsonferovante/ignite-nodejs-rentx
- Owner: maxsonferovante
- Created: 2023-09-18T03:05:35.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2023-09-24T02:49:18.000Z (over 1 year ago)
- Last Synced: 2025-01-30T09:17:01.316Z (5 months ago)
- Topics: express, jwt-authentication, nodejs, postgresql, typeorm, typescript
- Language: TypeScript
- Homepage:
- Size: 69.3 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
## Projeto de Gestão de Aluguel de Carros - Rentx API 🚗
Este projeto foi desenvolvido como parte da Trilha Ignite da Rocketseat. Tem como objetivo criar um sistema de gerenciamento para uma empresa de aluguel de carros, abordando desde o cadastro de carros até a gestão dos alugueis e devoluções.
## Problema Resolvido
A Rentx API resolve o problema de gestão de carros e aluguéis para uma empresa de aluguel de veículos. Permite o controle eficiente dos carros disponíveis, facilita o processo de aluguel para os usuários e gerencia as transações de aluguel e devolução.
## Tecnologias Utilizadas
- TypeScript
- Node.js
- Express.js
- TypeORM
- PostgreSQL
- Multer
- JSON Web Tokens (JWT)
- Bcrypt
- Swagger UI Express
- CSV Parse
- UUID
- tsyringe## Funcionalidades
### Cadastro de Carro
- Permite cadastrar um novo carro.
- Não é possível cadastrar um carro com uma placa já existente.
- O carro é cadastrado, por padrão, com disponibilidade.
- Apenas usuários administradores podem cadastrar carros.### Listagem de Carros
- Permite listar todos os carros disponíveis.
- Permite listar todos os carros disponíveis por nome da categoria, marca ou nome do carro.
- O usuário não precisa estar logado para listar carros.### Cadastro de Especificação no Carro
- Permite cadastrar uma especificação para um carro.
- Não é possível cadastrar uma especificação para um carro não cadastrado.
- Não é possível cadastrar uma especificação já existente para o mesmo carro.
- Apenas usuários administradores podem cadastrar especificações.### Cadastro de Imagens do Carro
- Permite cadastrar a imagem do carro.
- Utiliza o Multer para upload dos arquivos.
- O usuário pode cadastrar mais de uma imagem para o mesmo carro.
- Apenas usuários administradores podem cadastrar imagens.### Aluguel de Carro
- Permite cadastrar um aluguel.
- O aluguel tem duração mínima de 24 horas.
- Não é possível cadastrar um novo aluguel caso já exista um aberto para o mesmo usuário ou carro.
- O usuário deve estar logado para realizar um aluguel.
- Ao realizar um aluguel, o status do carro é alterado para indisponível.### Devolução de Carro
- Permite realizar a devolução de um carro.
- Se o carro for devolvido com menos de 24 horas, será cobrada diária completa.
- Ao realizar a devolução, o carro é liberado para outro aluguel.
- Ao realizar a devolução, o usuário é liberado para outro aluguel.
- Calcula o total do aluguel.
- Calcula multa proporcional aos dias de atraso.
- O usuário deve estar logado para realizar a devolução.### Listagem de Aluguéis para Usuário
- Permite buscar todos os aluguéis para um usuário.
- O usuário deve estar logado para acessar essa funcionalidade.### Recuperação de Senha
- Permite o usuário recuperar a senha informando o e-mail.
- Envia um e-mail com o passo a passo para a recuperação da senha.
- Permite o usuário inserir uma nova senha.
- O usuário precisa informar uma nova senha.
- O link enviado para a recuperação expira em 3 horas.