Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cleilsonandrade/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.
https://github.com/cleilsonandrade/park-api
h2-database jasper java jpa junit jwt mysql parking-management report spring-boot sql swagger swagger-documentation testing
Last synced: 7 days ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/cleilsonandrade/park-api
- Owner: CleilsonAndrade
- License: mit
- Created: 2023-10-17T15:18:02.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-08-19T15:42:22.000Z (3 months ago)
- Last Synced: 2024-08-20T18:48:41.564Z (3 months ago)
- Topics: h2-database, jasper, java, jpa, junit, jwt, mysql, parking-management, report, spring-boot, sql, swagger, swagger-documentation, testing
- Language: Java
- Homepage:
- Size: 625 KB
- Stars: 4
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
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.
# 📒 Índice
* [Descrição](#descrição)
* [Requisitos Funcionais](#requisitos)
* [Features](#features)
* [Tecnologias](#tecnologias)
* [Endpoints](#endpoints)
* [Instalação](#instalação)
* [Licença](#licença)# 📃 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**](https://www.java.com/) e o framework [**Spring**](https://spring.io/), sendo sistema robusto, permitindo persistência em banco de dados [**MySQL**](https://www.mysql.com/), com cobertura de testes utilizando [**JUnit**](https://junit.org/junit5/), autenticação usando o [**Spring Security**](https://spring.io/projects/spring-security), token [**JWT**](https://jwt.io/), encriptação de senhas utilizando [**BCrypt**](https://en.wikipedia.org/wiki/Bcrypt) e documentação desenvolvida pelo [**Swagger**](https://swagger.io/).# 📌 Requisitos Funcionais
- [x] Cadastramento de um usuário
- [x] Listar todos os usuário cadastrados
- [x] Atualizar a senha de um usuário especifico
- [x] Associar o usuário ao perfil de cliente
- [x] Consultar as informações de um cliente especifico
- [x] Consultar as informações de todos os cliente
- [x] Cadastrar vaga de estacionamento
- [x] Consultar as informações de uma vaga especifica
- [x] Realizar check-in de um veiculo em uma vaga
- [x] Localizar um veiculo estacionado em uma vaga, informando o numero do recibo
- [x] Realizar o check-out do cliente sobre um veiculo estacionado, informando o numero do recibo
- [x] Listar todos os registros de estacionamento de um cliente, informando o CPF
- [x] Cliente podendo visualizar todos os registros de seus estacionamentos## Features
- [x] Autenticação de usuário utilizando JWT Token
- [x] Exibição de informações do próprio usuário em sessão ativa
- [x] Adicionando mapeamento de CORS
- [x] Modelo de domínio complexo
- [x] Projeção com SQL nativo
- [x] Geração de relatórios utilizando Jasper Reports
- [x] 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
```bash
# 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](LICENSE) para mais detalhes.---
Feito com 💜 by CleilsonAndrade