Code Monkey home page Code Monkey logo

vehicle-reservation's Introduction

Vehicle Reservation

Projeto    |    Tecnologias    |    Como executar    |    Endpoints    |    Licença

License


💻 Projeto

O Vehicle Reservation é um sistema de gerenciamento de reservas de veículos, criado como parte da disciplina de Verificação e Validação.

Requisitos

  • Manter veículos:
    • Visualizar qualquer veículo com base nos filtros, como ano, marca e capacidade de passageiros;
    • Cadastrar um veículo com base nas informações dele, como marca, modelo, ano, placa, cor e capacidade de passageiros.
  • Gerenciar reservas:
    • Buscar reserva, o sistema verifica automaticamente se o veículo está disponível no intervalo de tempo solicitado, garantindo que não haja conflitos de reserva;
    • Reservar por um período de tempo.
  • Gerar pagamentos:
    • Criar um pagamento vinculado a reserva, puxando o valor dela e com tipos de pagamento disponiveis;
    • Visualizar os pagamentos criados.

Obervações

Foi feita a implementação dos testes unitários das entidades Vehicle, Reservation, Payment e dos seus respectivos controllers, também fiz os testes de integração dos controllers com os services usando dados mockados.

Foi usado o Entity Framework Core como ORM para realização da integração com o banco e manipulação do mesmo.



👨‍💻 Como Executar

Para executar a API localmente, siga estas etapas:

  • Necessário instalar o SDK do .NET na versão mais atual (8.x);
  • Clonar o repositório para o seu ambiente de desenvolvimento;
  • Instalar as dependências necessárias para a execução da API, com o comando dotnet restore na pasta do projeto, por exemplo o Backend-Vehicle-ReserVation você vai até a pasta dele e executar esse comando;
  • Executar a API localmente utilizando o comando dotnet run ou pela pasta raiz do repositório (solution) dotnet run --project Backend-Vehicle-Reservation.
  • Acessar o link que irá aparecer no terminal, como localhost:5134/swagger.

Os testes são executado com dotnet run --project Backend-Tests-Vehicle-Reservation ou dotnet test.



📌 Endpoints

/vehicle/create

Parâmetros:

  • Make (string): Marca do veículo.
  • Model (string): Modelo do veículo.
  • Year (string): Ano do veículo.
  • Color (string): Cor do veículo.
  • Plate (string): Placa do veículo.
  • Passenger Capacity (int): Capacidade de passageiros do veículo.

Cria uma instancia do veículo e registra no banco.


/vehicle/getbyfilter

Parâmetros:

  • Make (string): Marca do veículo.
  • Model (string): Modelo do veículo.
  • Year (string): Ano do veículo.
  • Color (string): Cor do veículo.
  • Plate (string): Placa do veículo.
  • Passenger Capacity (int): Capacidade de passageiros do veículo.

Retorna uma lista de veículos selecionados pelo parametros preenchidos.


/reservation/create

Parâmetros:

  • Vehicle Id (int): Identificador do veículo.
  • Start Date (DateTime): Data inicial da reserva.
  • End Date (DateTime): Data final da reserva.

Cria uma instancia de uma reserva e registra no banco.


/reservation/getbyfilter

Parâmetros:

  • Reservation Id (int): Identificador da reserva.
  • Vehicle Id (int): Identificador do veículo.
  • Start Date (DateTime): Data inicial da reserva.
  • End Date (DateTime): Data final da reserva.

Retorna uma lista de reservas selecionados pelo parametros preenchidos.


/payment/create

Parâmetros:

  • Reservation ID (int): Identificador da reserva.
  • Type (string): Tipo de pagamento, apenas "boleto", "cartao_credito" ou "cartao_debito".

Cria uma instancia de um pagamento, vincula à uma reserva,atualiza a reserva e registra no banco.


/payment/getbyfilter

Parâmetros:

  • Reservation ID (int): Identificador da reserva.
  • Value (double): valor da reserva.
  • Type (string): Tipo de pagamento, apenas "boleto", "cartao_credito" ou "cartao_debito".

Retorna uma lista de pagamentos selecionados pelo parametros preenchidos.



🚀 Tecnologias

  • .NET v8.x
  • ASP.NET Core
  • OpenAPI (Swagger)
  • xUnit
  • Entity Framework Core
  • Postgres
  • Railway


🔒 Licença

Esse projeto está sob a licença MIT.


vehicle-reservation's People

Contributors

rhogger avatar rhuanrp avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.