{"id":19387600,"url":"https://github.com/cleilsonandrade/park-api","last_synced_at":"2025-04-23T23:31:18.857Z","repository":{"id":201041859,"uuid":"706247423","full_name":"CleilsonAndrade/park-api","owner":"CleilsonAndrade","description":"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.","archived":false,"fork":false,"pushed_at":"2024-08-19T15:42:22.000Z","size":640,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T22:05:42.068Z","etag":null,"topics":["h2-database","jasper","java","jpa","junit","jwt","mysql","parking-management","report","spring-boot","sql","swagger","swagger-documentation","testing"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CleilsonAndrade.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-17T15:18:02.000Z","updated_at":"2024-08-19T15:42:26.000Z","dependencies_parsed_at":"2024-04-11T21:24:38.630Z","dependency_job_id":"22e3b2bc-23f6-47a3-9031-b1529b5aad92","html_url":"https://github.com/CleilsonAndrade/park-api","commit_stats":null,"previous_names":["cleilsonandrade/park-api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CleilsonAndrade%2Fpark-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CleilsonAndrade%2Fpark-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CleilsonAndrade%2Fpark-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CleilsonAndrade%2Fpark-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CleilsonAndrade","download_url":"https://codeload.github.com/CleilsonAndrade/park-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250531961,"owners_count":21446091,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["h2-database","jasper","java","jpa","junit","jwt","mysql","parking-management","report","spring-boot","sql","swagger","swagger-documentation","testing"],"created_at":"2024-11-10T10:09:54.332Z","updated_at":"2025-04-23T23:31:18.456Z","avatar_url":"https://github.com/CleilsonAndrade.png","language":"Java","readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003ePark API\u003c/h1\u003e\n  \u003cp\u003eSistema 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.\u003c/p\u003e\n    \u003cimg src=\"./references/flow.png\" alt=\"Flow\" width=\"1800\"\u003e\n\u003c/div\u003e\n\n# 📒 Índice\n* [Descrição](#descrição)\n* [Requisitos Funcionais](#requisitos)\n  * [Features](#features)\n* [Tecnologias](#tecnologias)\n* [Endpoints](#endpoints)\n* [Instalação](#instalação)\n* [Licença](#licença)\n\n# 📃 \u003cspan id=\"descrição\"\u003eDescrição\u003c/span\u003e\nSistema 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/).\n\n# 📌 \u003cspan id=\"requisitos\"\u003eRequisitos Funcionais\u003c/span\u003e\n- [x] Cadastramento de um usuário\u003cbr\u003e\n- [x] Listar todos os usuário cadastrados\u003cbr\u003e\n- [x] Atualizar a senha de um usuário especifico\u003cbr\u003e\n- [x] Associar o usuário ao perfil de cliente\u003cbr\u003e\n- [x] Consultar as informações de um cliente especifico\u003cbr\u003e\n- [x] Consultar as informações de todos os cliente\u003cbr\u003e\n- [x] Cadastrar vaga de estacionamento\u003cbr\u003e\n- [x] Consultar as informações de uma vaga especifica\u003cbr\u003e\n- [x] Realizar check-in de um veiculo em uma vaga\u003cbr\u003e\n- [x] Localizar um veiculo estacionado em uma vaga, informando o numero do recibo\u003cbr\u003e\n- [x] Realizar o check-out do cliente sobre um veiculo estacionado, informando o numero do recibo\u003cbr\u003e\n- [x] Listar todos os registros de estacionamento de um cliente, informando o CPF\u003cbr\u003e\n- [x] Cliente podendo visualizar todos os registros de seus estacionamentos\u003cbr\u003e\n\n## Features\n- [x] Autenticação de usuário utilizando JWT Token\u003cbr\u003e\n- [x] Exibição de informações do próprio usuário em sessão ativa\u003cbr\u003e\n- [x] Adicionando mapeamento de CORS\u003cbr\u003e\n- [x] Modelo de domínio complexo\u003cbr\u003e\n- [x] Projeção com SQL nativo\u003cbr\u003e\n- [x] Geração de relatórios utilizando Jasper Reports\u003cbr\u003e\n- [x] Cobertura de testes\u003cbr\u003e\n\n# 💻 \u003cspan id=\"tecnologias\"\u003eTecnologias\u003c/span\u003e\n- **Java**\n- **Spring**\n- **Spring Web**\n- **Spring Reactive Web**\n- **Spring Boot DevTools**\n- **Spring Data JPA**\n- **Spring Bean Validation**\n- **JUnit**\n- **JWT**\n- **BCrypt**\n- **Swagger**\n- **MySQL**\n- **H2 Database**\n- **Jasper Reports**\n\n# 📍 \u003cspan id=\"endpoints\"\u003eEndpoints\u003c/span\u003e\n| Método | Endpoint               | Resumo                                          | Autenticação               | Role\n|--------|----------------------|-----------------------------------------------------|--------------------------|----------------------\n\u003ckbd\u003ePOST\u003c/kbd\u003e | \u003ckbd\u003e/auth\u003c/kbd\u003e | Responsável por autenticar o usuário, gerando o Bearer Token *JWT* | Sim | *\n\u003ckbd\u003ePOST\u003c/kbd\u003e | \u003ckbd\u003e/users\u003c/kbd\u003e | Responsável por cadastramento de um usuário | Não | *\n\u003ckbd\u003eGET\u003c/kbd\u003e | \u003ckbd\u003e/users/:id\u003c/kbd\u003e | Responsável por consultar as informações de um usuário especifico, informando o ID | Sim | ADMIN, CLIENT\n\u003ckbd\u003eGET\u003c/kbd\u003e | \u003ckbd\u003e/users\u003c/kbd\u003e | Responsável por listar todos os usuário cadastrados | Sim | ADMIN\n\u003ckbd\u003ePATCH\u003c/kbd\u003e| \u003ckbd\u003e/users/:id\u003c/kbd\u003e | Responsável por atualizar a senha de um usuário especifico, informando o ID | Sim | ADMIN, CLIENT\n\u003ckbd\u003ePOST\u003c/kbd\u003e | \u003ckbd\u003e/clients\u003c/kbd\u003e | Responsável por associar o usuário ao perfil de cliente | Sim | CLIENT\n\u003ckbd\u003eGET\u003c/kbd\u003e | \u003ckbd\u003e/clients/:id\u003c/kbd\u003e | Responsável por consultar as informações de um usuário especifico com perfil de cliente, informando o ID | Sim | ADMIN\n\u003ckbd\u003eGET\u003c/kbd\u003e | \u003ckbd\u003e/clients\u003c/kbd\u003e | Responsável por listar todos os usuários com perfil de cliente | Sim | ADMIN\n\u003ckbd\u003eGET\u003c/kbd\u003e | \u003ckbd\u003e/clients/details\u003c/kbd\u003e | Responsável por listar as informações do usuário em sessão ativa com perfil de cliente | Sim | CLIENT\n\u003ckbd\u003ePOST\u003c/kbd\u003e | \u003ckbd\u003e/parkings\u003c/kbd\u003e | Responsável por cadastrar vaga de estacionamento | Sim | ADMIN\n\u003ckbd\u003eGET\u003c/kbd\u003e | \u003ckbd\u003e/parkings/:code\u003c/kbd\u003e | Responsável por consultar as informações de uma vaga especifica, informando o código | Sim | ADMIN\n\u003ckbd\u003ePOST\u003c/kbd\u003e | \u003ckbd\u003e/parking-lots/check-in\u003c/kbd\u003e | Responsável por realizar check-in de um veiculo em uma vaga | Sim | ADMIN\n\u003ckbd\u003eGET\u003c/kbd\u003e | \u003ckbd\u003e/parking-lots/:receipt\u003c/kbd\u003e | Responsável por localizar um veiculo estacionado em uma vaga, informando o numero do recibo | Sim | ADMIN, CLIENT\n\u003ckbd\u003eGET\u003c/kbd\u003e | \u003ckbd\u003e/parking-lots/check-out/:receipt\u003c/kbd\u003e | 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\n\u003ckbd\u003eGET\u003c/kbd\u003e | \u003ckbd\u003e/parking-lots/cpf/:cpf\u003c/kbd\u003e | Responsável por listar todos os registros de estacionamento de um cliente, informando o CPF | Sim | ADMIN\n\u003ckbd\u003eGET\u003c/kbd\u003e | \u003ckbd\u003e/parking-lots\u003c/kbd\u003e | Responsável por listar todos os registros de estacionamento do usuário em sessão ativa com perfil de cliente | Sim | CLIENT\n\u003ckbd\u003eGET\u003c/kbd\u003e | \u003ckbd\u003e/reports\u003c/kbd\u003e | 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\n\u003ckbd\u003eGET\u003c/kbd\u003e | \u003ckbd\u003e/swagger-ui/index.html\u003c/kbd\u003e | Responsável por servir a documentação dos recursos da API | Não | *\n\u003ckbd\u003eGET\u003c/kbd\u003e | \u003ckbd\u003e/h2-console\u003c/kbd\u003e | Responsável por acesso ao *H2 Database* | Sim | *\n\n# 🚀 \u003cspan id=\"instalação\"\u003eInstalação\u003c/span\u003e\n```bash\n  # Clone este repositório:\n  $ git clone https://github.com/CleilsonAndrade/park-api.git\n  $ cd ./park-api\n\n   # Instalar as dependências:\n  $ mvn clean install\n\n  # Executar:\n  $ mvn spring-boot:run\n```\n\n# 📝 \u003cspan id=\"licença\"\u003eLicença\u003c/span\u003e\nEsse projeto está sob a licença MIT. Veja o arquivo [LICENSE](LICENSE) para mais detalhes.\n\n---\n\n\u003cp align=\"center\"\u003e\n  Feito com 💜 by CleilsonAndrade\n\u003c/p\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcleilsonandrade%2Fpark-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcleilsonandrade%2Fpark-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcleilsonandrade%2Fpark-api/lists"}