🎯 Descrição • 📌 Tecnologias • 📂 Como executar o aplicativo • 📂 Como testar o aplicativo • 📂 Problemas • 👤 Autor • 📃 Licença
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.
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
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
Dentro do diretório que o arquivo docker-compose.yml está contido, abra o terminal e execute o seguinte comando:
docker-compose up
Em seu navegador, digite o seguinte endereço: http://localhost:5000/
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.
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
- Os planos disponíveis para locação sã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.
- Quando a data informada for inferior a data prevista do término, será cobrado o valor das diárias e uma multa adicional
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.
📝 by guilhermeFerreiram
MIT License • © guilhermeFerreiram