Skip to content

CleilsonAndrade/park-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

113 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Park API

Sistema de gerenciamento de vagas de estacionamento. Possui recursos como autenticação de usuários, cadastrar e gerenciar informações de usuários, com perfis de cliente e administrador. Ele também permite consultas específicas, como listar usuários cadastrados, atualizar senhas, e realizar operações de check-in e check-out de veículos estacionados. Além disso, o sistema gera relatórios de estacionamentos. Desenvolvido com tecnologias como Java e o framework Spring, sendo sistema robusto, permitindo persistência em banco de dados MySQL, com cobertura de testes, autenticação usando o Spring Security e token JWT.

Flow

📒 Índice

📃 Descrição

Sistema de gerenciamento de vagas de estacionamento. Possui recursos como autenticação de usuários, cadastrar e gerenciar informações de usuários, com perfis de cliente e administrador. Ele também permite consultas específicas, como listar usuários cadastrados, atualizar senhas, e realizar operações de check-in e check-out de veículos estacionados. Além disso, o sistema gera relatórios de estacionamentos. Desenvolvido com tecnologias como Java e o framework Spring, sendo sistema robusto, permitindo persistência em banco de dados MySQL, com cobertura de testes utilizando JUnit, autenticação usando o Spring Security, token JWT, encriptação de senhas utilizando BCrypt e documentação desenvolvida pelo Swagger.

📌 Requisitos Funcionais

  • Cadastramento de um usuário
  • Listar todos os usuário cadastrados
  • Atualizar a senha de um usuário especifico
  • Associar o usuário ao perfil de cliente
  • Consultar as informações de um cliente especifico
  • Consultar as informações de todos os cliente
  • Cadastrar vaga de estacionamento
  • Consultar as informações de uma vaga especifica
  • Realizar check-in de um veiculo em uma vaga
  • Localizar um veiculo estacionado em uma vaga, informando o numero do recibo
  • Realizar o check-out do cliente sobre um veiculo estacionado, informando o numero do recibo
  • Listar todos os registros de estacionamento de um cliente, informando o CPF
  • Cliente podendo visualizar todos os registros de seus estacionamentos

Features

  • Autenticação de usuário utilizando JWT Token
  • Exibição de informações do próprio usuário em sessão ativa
  • Adicionando mapeamento de CORS
  • Modelo de domínio complexo
  • Projeção com SQL nativo
  • Geração de relatórios utilizando Jasper Reports
  • Cobertura de testes

💻 Tecnologias

  • Java
  • Spring
  • Spring Web
  • Spring Reactive Web
  • Spring Boot DevTools
  • Spring Data JPA
  • Spring Bean Validation
  • JUnit
  • JWT
  • BCrypt
  • Swagger
  • MySQL
  • H2 Database
  • Jasper Reports

📍 Endpoints

Método Endpoint Resumo Autenticação Role
POST /auth Responsável por autenticar o usuário, gerando o Bearer Token JWT Sim *
POST /users Responsável por cadastramento de um usuário Não *
GET /users/:id Responsável por consultar as informações de um usuário especifico, informando o ID Sim ADMIN, CLIENT
GET /users Responsável por listar todos os usuário cadastrados Sim ADMIN
PATCH /users/:id Responsável por atualizar a senha de um usuário especifico, informando o ID Sim ADMIN, CLIENT
POST /clients Responsável por associar o usuário ao perfil de cliente Sim CLIENT
GET /clients/:id Responsável por consultar as informações de um usuário especifico com perfil de cliente, informando o ID Sim ADMIN
GET /clients Responsável por listar todos os usuários com perfil de cliente Sim ADMIN
GET /clients/details Responsável por listar as informações do usuário em sessão ativa com perfil de cliente Sim CLIENT
POST /parkings Responsável por cadastrar vaga de estacionamento Sim ADMIN
GET /parkings/:code Responsável por consultar as informações de uma vaga especifica, informando o código Sim ADMIN
POST /parking-lots/check-in Responsável por realizar check-in de um veiculo em uma vaga Sim ADMIN
GET /parking-lots/:receipt Responsável por localizar um veiculo estacionado em uma vaga, informando o numero do recibo Sim ADMIN, CLIENT
GET /parking-lots/check-out/:receipt Responsável por realizar o check-out do veiculo de um usuário com perfil de cliente sobre o veiculo estacionado, informando o numero do recibo Sim ADMIN
GET /parking-lots/cpf/:cpf Responsável por listar todos os registros de estacionamento de um cliente, informando o CPF Sim ADMIN
GET /parking-lots Responsável por listar todos os registros de estacionamento do usuário em sessão ativa com perfil de cliente Sim CLIENT
GET /reports Responsável por gerar relatório de estacionamentos do usuário em sessão ativa com perfil de cliente, utilizando o Jasper Reports Sim CLIENT
GET /swagger-ui/index.html Responsável por servir a documentação dos recursos da API Não *
GET /h2-console Responsável por acesso ao H2 Database Sim *

🚀 Instalação

  # Clone este repositório:
  $ git clone https://github.com/CleilsonAndrade/park-api.git
  $ cd ./park-api

   # Instalar as dependências:
  $ mvn clean install

  # Executar:
  $ mvn spring-boot:run

📝 Licença

Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.


Feito com 💜 by CleilsonAndrade

About

Sistema de gerenciamento de vagas de estacionamento. Possui recursos como autenticação de usuários, cadastrar e gerenciar informações de usuários, com perfis de cliente e administrador. Ele também permite consultas específicas, como listar usuários cadastrados, atualizar senhas, e realizar operações de check-in e check-out de veículos estacionados.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors