API Node.js par RentX

Tecnologias


Iniciar projeto via Docker

Criar e iniciar configurações

docker-compose up

Iniciar serviços

docker-compose start

logs

docker logs SERVICE -f

Para serviços

docker-compose stop

Para e remover as configurações

docker-compose down


Diagramação

Esquema banco de dados


Requisitos e Regras de negócio

  • RF: Requisitos Funcionais;
  • RNF: Requisitos Não Funcionais;
  • RN: Regras de negócio.

Cadastro de Carro

RF

  • Deve ser possível cadastro um novo carro.

RN

  • Não deve ser possível cadastro um carro com a placa já existente;
  • O carro pode padrão, deve ser cadastrado com disponível;
  • O usuário responsável pelo cadastro deve ser um administrado.

Listagem de Carro

RF

  • Deve ser possível listar todos os carros disponíveis.
  • Deve ser possível listar todos os carros disponíveis através do nome da categoria;
  • Deve ser possível listar todos os carros disponíveis através do nome da marca;
  • Deve ser possível listar todos os carros disponíveis através do nome do carro.

RN

  • O usuário não precisa estar autenticado para lista os carros.

Cadastro de especificação no carro

RF

  • Deve ser possível cadastrar uma especificação para um carro.

RN

  • Não deve ser possível cadastrar uma especificação para um carro não cadastrado;
  • Não deve ser possível cadastrar uma especificação já existente para o mesmo carro;
  • O usuário responsável pelo cadastro deve ser um administrado.

Cadastro de imagens do carro

RF

  • Deve ser possível a imagem do carro;

RNF

  • Utilizar o multer para envio dos arquivos.

RN

  • O usuário deve ser capaz de cadastrar mais de uma imagem para o mesmo carro;
  • O usuário responsável pelo cadastro deve ser um administrado.

Aluguel de carro

RF

  • Deve ser possível cadastra um aluguel.

RN

  • O aluguel deve ter duração minima de 24 hora;
  • Não deve ser possível cadastrar um novo aluguel caso já exista um aberto para o mesmo usuário;
  • Não deve ser possível cadastrar um novo aluguel caso já exista um aberto para o mesmo carro;
  • O usuário deve estar logado na aplicação;
  • Ao realizar um aluguel, o status do carro deverá ser alterado para indisponível.

Devolução de carro

RF

  • Deve ser possível realizar a devolução de um aluguel.

RN

  • Se o carro for devolvido com menos de 24 horas, deverá ser cobrado diário completa;
  • Ao realizar a devolução, o carro deverá ser liberado para outro aluguel;
  • Ao realizar a devolução, o usuário deverá ser liberado para outro aluguel;
  • Ao realizar a devolução, deverá ser calculado o total do aluguel;
  • Caso o horário de devolução seja superior ao horário previsto de entrega, deverá ser cobrado multa proporcional aos dias de atraso;
  • O usuário deve estar logado na aplicação;
  • Caso haja multa, deverá ser somado ao total do aluguel.

Listagem de alugueis para usuário

RF

  • Deve ser possível realizar a busca de todos os alugueis para o usuário.

RN

  • O aluguel deve estar logado na aplicação;

Recuperar Senha

RF

  • Deve ser possível o usuário recuperar a senha informando o e-mail;
  • O usuário deve receber um e-mail com o passo a passo para a recuperação de senha;
  • O usuário deve conseguir inserir uma nova senha.

RN

  • O usuário precisa informar um nova senha;
  • O link enviado para a recuperação deve expirar em 3 horas.