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
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 | * |
# 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