Este projeto é uma API desenvolvida em Java Spring Boot para o jogo do bicho, com o objetivo de praticar e aplicar conhecimentos técnicos adquiridos na área de desenvolvimento. Atenção: este projeto é de uso estritamente educacional e não deve ser utilizado de forma ilegal.
- Autenticação JWT: Apenas contraventores autenticados como Admin podem cadastrar clientes e criar apostas vinculadas a esses clientes.
- CRUD Completo:
- Gerenciamento de contraventores.
- Gerenciamento de clientes.
- Gerenciamento de apostas.
- Documentação: Swagger UI integrada para visualizar e testar os endpoints da API.
- Banco de Dados: PostgreSQL como banco de dados relacional.
- Testes: Testes unitários implementados com Mockito.
- Java 21
- Maven
- Spring Boot 3.3.2
- Spring Security para autenticação e autorização.
- Spring Data JPA para interação com o banco de dados.
- JWT (JSON Web Token) para controle de autenticação.
- PostgreSQL como banco de dados.
- Mockito para testes unitários.
- Swagger para documentação da API.
-
Clone o repositório:
git clone https://github.com/gbiz0/API_JogodoBicho.git cd API_JogodoBicho
-
Configuração do Banco de Dados:
- Certifique-se de que o PostgreSQL está instalado e rodando.
- Crie um banco de dados chamado bicho_db.
- Atualize as configurações de conexão em application.properties ou application.yml com suas credenciais do PostgreSQL.
- Pegue o script sql localizado em util/script.sql
-
Execute a aplicação:
-
Acesse a documentação Swagger: Acesse http://localhost:8080/swagger-ui.html para visualizar e testar os endpoints da API.
-
Autenticação JWT
Os endpoints são protegidos por JWT. Para acessar os endpoints que exigem autenticação:
- Faça login usando as credenciais de um contraventor Admin.
- Obtenha o token JWT e adicione-o ao cabeçalho Authorization de suas requisições como Bearer {token}.
Este projeto está aberto a contribuições de qualquer pessoa que deseje colaborar. Sinta-se à vontade para abrir issues, sugerir melhorias ou enviar pull requests. Toda ajuda é bem-vinda para aprimorar ainda mais o projeto!
- Frontend: Futuramente, será desenvolvido um frontend em React, consumindo esta API via Axios.
- Deploy: Planejo fazer o deploy da API em um servidor para acesso público.
- Este projeto é uma ideia para fins educativos, focando em conceitos de autenticação, CRUD, APIs RESTful e boas práticas no desenvolvimento de software. Em hipótese alguma deve ser utilizado para atividades ilegais.