Skip to content

guilhermeFerreiram/AluguelDeMotos

Repository files navigation

Aluguel de Motos com ASP.NET Core MVC


Tópicos

🎯 Descrição📌 Tecnologias📂 Como executar o aplicativo📂 Como testar o aplicativo📂 Problemas👤 Autor📃 Licença


🎯 Descrição

Este projeto tem o objetivo de gerenciar aluguel de motos e entregadores. A aplicação foi desenvolvida com o framework ASP.NET Core, com modelagem MVC.


📌 Tecnologias

C# • ASP.NET Core MVC • Login de usuários (sessão HTTP) • Requisições HTTP • Serialização de objetos JSON • CRUD • JQuery DataTable • Bootsrap • PostregreSQL • Entity Framework • Docker


📂 Como executar o aplicativo

Clone o repositório

Para clonar o repositório, certifique-se de possuir o Git instalado em seu em seu computador...

# Clone todo o repositório
$ git clone https://github.com/guilhermeFerreiram/ControleDeContatosMVC.git

Docker

Dentro do diretório que o arquivo docker-compose.yml está contido, abra o terminal e execute o seguinte comando:

docker-compose up

Acessando o app

Em seu navegador, digite o seguinte endereço: http://localhost:5000/

Atenção

O aplicativo cria por conta própria um perfil administrador com email "admin@example.com" e senha "1234". No primeiro run do projeto, você pode logar como administrador utilizando este login.

📂 Como testar o aplicativo

Dentre as funcionalidades da aplicação, as principais são:

  • Existem dois tipos de usuários: admin e entregador.
  • Existe restrição de acesso a páginas específicas para cada tipo de usuário.
  • O usuário admin pode cadastrar uma nova moto.
    • Os dados obrigatórios da moto são Identificador, Ano, Modelo e Placa
    • A placa é um dado único e não pode se repetir.
    • Quando a moto for cadastrada a aplicação deverá gerar um evento de moto cadastrada
      • A notificação deverá ser publicada por mensageria.
      • Um consumidor será notificado quando o ano da moto for "2024". (Verifique a notificação no mesmo terminal que iniciou o Docker)
# A notificação aparecerá dessa forma no console
consumidor-1        |  [x] Recebida: Nova moto 2024 cadastrada!
  • O usuário admin pode consultar as motos existentes na plataforma e consegue filtrar pela placa, ano, modelo e situação de aluguel.
  • O usuário admin pode modificar uma moto alterando qualquer dado que foi cadastrado indevidamente
  • O usuário admin pode remover uma moto que foi cadastrada incorretamente, desde que não tenha registro de locação.
  • O usuário entregador pode se cadastrar na plataforma para alugar motos.
    • Os dados do entregador são( identificador, nome, cnpj, data de nascimento, número da CNHh, tipo da CNH)
    • Os tipos de cnh válidos são A, B ou ambas A+B.
    • O cnpj é único e não pode se repetir.
    • O número da CNH é único e não pode se repetir.
  • O usuário entregador pode alugar uma moto por um período.
    • Os planos disponíveis para locação são:
      • 7 dias com um custo de R$30,00 por dia
      • 15 dias com um custo de R$28,00 por dia
      • 30 dias com um custo de R$22,00 por dia
      • 45 dias com um custo de R$20,00 por dia
      • 50 dias com um custo de R$18,00 por dia
    • A locação obrigatóriamente tem uma data de inicio e uma data de término e outra data de previsão de término.
    • O inicio da locação obrigatóriamente é o primeiro dia após a data de criação.
    • Somente entregadores habilitados na categoria A ou AB podem efetuar uma locação
  • O usuário entregador pode informar a data que irá devolver a moto e consultar o valor total da locação.
    • Quando a data informada for inferior a data prevista do término, será cobrado o valor das diárias e uma multa adicional
      • Para plano de 7 dias o valor da multa é de 20% sobre o valor das diárias não efetivadas.
      • Para plano de 15 dias o valor da multa é de 40% sobre o valor das diárias não efetivadas.
    • Quando a data informada for superior a data prevista do término, será cobrado um valor adicional de R$50,00 por diária adicional.

📂 Problemas

Ao iniciar o conteiner do projeto 'Consumidor', algumas excessões são geradas sinalizando falhas de conexão com RabbitMQ. A solução imediata foi incluir um comando no arquivo docker-compose.yml para dar restart no projeto sempre que fechar. Outro problema, também relacionado ao consumidor, é a visibilidade das mensagens de confirmação de recebimento. As mensagens são escritas no console onde você rodou o comando docker-compose up, junto com as mensagens do Entity Framework da aplicação web.

👤 Autor

📝 by guilhermeFerreiram


📃 Licença

MIT License  •  © guilhermeFerreiram

About

Aplicativo ASP.NET Core MVC

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published