Reservation Api

Informações do Projeto

Documentação: reservation-api.erikmota.dev/swagger-ui/index.html
Github: github.com/seriikmota/reservation-equipments-manager
Tecnologias:
  • Java
  • Spring Boot
  • Spring JPA
  • Postgresql
  • SQL

Descrição do Projeto

Este projeto é uma API RESTful desenvolvida para gerenciar o sistema de reservas de equipamentos. A API foi criada utilizando Java, Spring Framework, JPA (Java Persistence API) e Spring Schedule, garantindo uma solução escalável e eficiente para administrar o uso e a disponibilidade de equipamentos em diversos estados.

A API permite que os usuários realizem reservas de equipamentos de maneira segura, respeitando as validações e as regras de negócio definidas. Entre as principais funcionalidades e características estão:

Gestão de Reservas

  • Permite a reserva de equipamentos, verificando a disponibilidade no momento da solicitação.
  • Restrições baseadas na quantidade de equipamentos disponíveis para evitar reservas acima do limite.

Validações Avançadas

  • Verifica se os equipamentos estão disponíveis para uso antes de confirmar a reserva.
  • Controla diferentes estados dos equipamentos, como: Disponível, Em Manutenção, Com Defeito, Outros estados.

Atualização Automática de Estados, utilizando o Spring Schedule, a API realiza tarefas agendadas, como:

  • Atualizar automaticamente o estado de equipamentos após manutenção ou reparo.
  • Notificar sobre reservas expiradas ou equipamentos que estão há muito tempo em manutenção.

Histórico e Controle de Reservas

  • Registro completo das reservas realizadas, com informações como data, horário e usuário que realizou a solicitação.
  • Histórico do estado de cada equipamento, facilitando o monitoramento e a manutenção preventiva.

Este projeto é ideal para empresas, escolas ou qualquer instituição que precise gerenciar o uso de equipamentos de forma organizada e eficiente. Com o uso de tecnologias robustas como Java, Spring, JPA e o agendamento de tarefas do Spring Schedule, a API é capaz de oferecer um gerenciamento centralizado e automatizado, reduzindo erros e melhorando a experiência dos usuários.