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.
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.
- 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
- 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
- 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
Endpoint | Resumo | Autenticação |
---|---|---|
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 | ADMIN, CLIENT |
GET /users | Responsável por listar todos os usuário cadastrados | ADMIN |
PATCH /users/:id | Responsável por atualizar a senha de um usuário especifico, informando o ID | ADMIN, CLIENT |
POST /clients | Responsável por associar o usuário ao perfil de cliente | CLIENT |
GET /clients/:id | Responsável por consultar as informações de um usuário especifico com perfil de cliente, informando o ID | ADMIN |
GET /clients | Responsável por listar todos os usuários com perfil de cliente | ADMIN |
GET /clients/details | Responsável por listar as informações do usuário em sessão ativa com perfil de cliente | CLIENT |
POST /parkings | Responsável por cadastrar vaga de estacionamento | ADMIN |
GET /parkings/:code | Responsável por consultar as informações de uma vaga especifica, informando o código | ADMIN |
POST /parking-lots/check-in | Responsável por realizar check-in de um veiculo em uma vaga | ADMIN |
GET /parking-lots/:receipt | Responsável por localizar um veiculo estacionado em uma vaga, informando o numero do recibo | 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 | ADMIN |
GET /parking-lots/cpf/:cpf | Responsável por listar todos os registros de estacionamento de um cliente, informando o CPF | ADMIN |
GET /parking-lots | Responsável por listar todos os registros de estacionamento do usuário em sessão ativa com perfil de cliente | 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 | CLIENT |
GET /swagger-ui/index.html | Responsável por servir a documentação dos recursos da API | |
GET /h2-console | Responsável por acesso ao H2 Database |
# 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
Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Feito com 💜 by CleilsonAndrade