{"repo":"renanlessa/elifoot","free":true,"listed":false,"github":"https://github.com/renanlessa/elifoot","clone":"git clone https://github.com/renanlessa/elifoot.git","description":"Aplicação Spring Boot que simula a gestão de clubes de futebol.","language":"Java","stars":10,"topics":["docker","flyway","java","junit5","jwt","mapstruct","mockito","oauth2","postgresql","spring-boot"],"license":"MIT","category":"auth-billing-email","readme_excerpt":"⚽ Elifoot Elifoot é uma aplicação desenvolvida em Java com Spring Boot que simula a gestão de clubes de futebol, incluindo funcionalidades como cadastro de estádios, jogadores, clubes, autenticação e autorização com OAuth2, e controle de permissões via scopes. 🔧 Tecnologias - Java 17 - Spring Boot - Spring Security + OAuth2 Resource Server - MapStruct - Flyway - Testcontainers - PostgreSQL - JUnit 5 - Mockito - Docker (para ambiente de desenvolvimento/testes) ✨ Funcionalidades - CRUD de Clubes, Estádios e Jogadores - Relacionamento entre Clubes e Estádios (1:1) e entre Clubes e Jogadores (1:N) - Autenticação e autorização com Spring Security + OAuth2 - Controle de acesso por scopes ( club:read , player:write , etc.) - Conversão de entidades e DTOs com MapStruct - Validação global com @ControllerAdvice - Migrations com Flyway - Testes unitários com JUnit 🔐 Segurança O sistema utiliza OAuth2 com JWT Bearer Token e validação baseada em scopes , incluindo anotação personalizada @CanReadClub . Exemplo de Scopes - club:read - club:write - player:read - player:write - admin:all 🧱 Diagrama do Banco de Dados 🚀 Como rodar o projeto 1. Clone o repositório: 2. Rode a aplicação: 3. Acesse: http://localhost:8080 📡 Endpoints da API Método Caminho Descrição -------- ----------------------- ------------------------------ GET /enums/positions Listar posições de jogadores GET /stadiums Lista estádios (paginado) POST /stadiums Cria um novo estádio GET /clubs Lista clubes (paginado) POST /cl","default_branch":null,"files":null,"tree":[],"storefront":"/r/renanlessa","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/renanlessa/elifoot/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}