Animex é uma aplicação backend desenvolvida em Java/Spring Boot para gerenciamento de animes e usuários. O sistema permite o cadastro, autenticação e autorização de usuários, além do gerenciamento de uma biblioteca de animes com diferentes gêneros.
- Java 21
- Spring Boot 3.5.13
- Spring Web (RESTful APIs)
- Spring Data JPA (Persistência de dados)
- Spring Security (Autenticação e Autorização)
- Spring Validation (Validação de dados)
- Spring Boot DevTools (Desenvolvimento)
- PostgreSQL (Banco de dados relacional)
- JJWT 0.12.5 (JSON Web Tokens para autenticação)
- Lombok (Redução de boilerplate)
- Maven (Gerenciamento de dependências)
src/main/java/com/patrick/animex/
├── config/ # Configurações do Spring (Security, etc.)
├── controller/ # Controladores REST
│ ├── AnimeController.java
│ ├── AuthController.java
│ └── UsuarioController.java
├── dto/ # Data Transfer Objects
│ ├── request/ # DTOs de requisição
│ └── response/ # DTOs de resposta
├── entity/ # Entidades JPA
│ ├── enums/ # Enumeradores
│ └── *.java # Classes de entidade
├── repository/ # Interfaces JPA Repository
└── exception/ # Tratamento de exceções
- Registro de usuários (
POST /api/auth/register) - Login (
POST /api/auth/login) - Retorna JWT token - Autenticação baseada em JWT
- Roles: USER, ADMIN
- Listar animes (
GET /api/animes) - Buscar anime por ID (
GET /api/animes/{id}) - Criar novo anime (
POST /api/animes) - Requer autenticação - Atualizar anime (
PUT /api/animes/{id}) - Requer autenticação - Deletar anime (
DELETE /api/animes/{id}) - Requer autenticação
- Java 21 ou superior
- Maven 3.6+
- PostgreSQL (Docker recomendado)
- Clone o repositório:
git clone <url-do-repositorio>
cd Animex- Configure o banco de dados PostgreSQL. Você pode usar Docker:
docker run -d \
--name postgres-animex \
-e POSTGRES_DB=animex \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=postgres \
-p 5432:5432 \
postgres:15- Atualize as credenciais do banco em
src/main/resources/application.properties:
spring.datasource.url=jdbc:postgresql://localhost:5432/animex
spring.datasource.username=postgres
spring.datasource.password=postgres./mvnw spring-boot:runOu usando Maven wrapper:
mvn spring-boot:run./mvnw clean packageA aplicação estará disponível em http://localhost:8080
Registra um novo usuário
{
"username": "string",
"password": "string",
"email": "string"
}Realiza login e retorna token JWT
{
"username": "string",
"password": "string"
}Todos os endpoints de animes requerem autenticação via Bearer Token.
Lista todos os animes
Busca anime por ID
Cria um novo anime
{
"nome": "string",
"descricao": "string",
"genero": "ACAO|COMEDIA|DRAMA|FANTASIA|ROMANCE|TERROR|SCI_FI",
"ano": integer
}Atualiza um anime existente
Remove um anime
Execute os testes com:
./mvnw test- Autenticação via JWT (JSON Web Tokens)
- Senhas armazenadas com BCrypt
- Proteção contra ataques CSRF
- Validação de dados de entrada
Entidades:
- Usuario: Armazena informações de usuários e credenciais
- Anime: Catálogo de animes
- Favorito: Relacionamento entre usuários e animes favoritos
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/MinhaFeature) - Commit suas mudanças (
git commit -m 'Add: MinhaFeature') - Push para a branch (
git push origin feature/MinhaFeature) - Abra um Pull Request
Este projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
Projeto desenvolvido como parte de estudos em desenvolvimento backend com Spring Boot.