API para gerenciamento e avaliação de filmes construída com Java e Spring Boot, com foco em consistência, desacoplamento e evolução sustentável.
O ScreenScore é uma API para gestão e avaliação de filmes, permitindo que usuários cadastrem filmes, publiquem avaliações e construam rankings dentro da plataforma.
Mais do que um CRUD, o objetivo da V1 foi construir uma base pronta para evoluir sem gerar dívida técnica, aplicando decisões que aumentam a robustez e previsibilidade do sistema.
- Gestão de filmes
- Gestão de usuários
- Sistema de avaliações
- Base preparada para rankings e estatísticas
- Autenticação centralizada com Spring AOP
- Gerenciamento de sessão com Spring
- Controle de acesso desacoplado do domínio
👉 Segurança aplicada como cross-cutting concern, sem poluir regras de negócio
- Separação entre domínio interno e domínio externo
- Conversão de dados para evitar acoplamento
- Uso de DTOs para exposição controlada
👉 Integrações sem comprometer a estabilidade do sistema
- Upload próprio de posters de filmes
- Persistência apenas da chave do arquivo
- Geração de URLs pré-assinadas para acesso seguro
👉 Controle total sobre dados críticos e maior resiliência
- Padronização de erros com ProblemDetail (RFC 7807)
- Centralização com GlobalExceptionHandler
- Reutilização de schemas de erro na documentação
- Migração de JDBC → Spring Data JDBC
👉 Menos boilerplate, mais consistência e manutenção simplificada
- CRUD completo de filmes
- CRUD de usuários
- Sistema de avaliações
- Integração com API externa de filmes
- Upload e gerenciamento de imagens (S3)
- Documentação automática com Swagger
- Tratamento padronizado de erros
O projeto segue uma abordagem inspirada em Arquitetura Hexagonal (Ports & Adapters):
Regras de negócio e entidades centrais
Casos de uso e orquestração
- Banco de dados
- Integrações externas
- Configurações do framework
👉 O domínio não depende de frameworks ou detalhes externos
- Java 21
- Spring Boot
- Spring Data JDBC
- Spring AOP
- OpenFeign
- MySQL
- H2 (ambiente de desenvolvimento)
- AWS S3
- OpenAPI / Swagger
https://screenscore-api-yrw8.onrender.com/swagger-ui/index.html
http://localhost:8080/swagger-ui/index.html
O frontend está em um repositório separado:
👉 https://github.com/jonathan7gb/ScreenScore-UI
A V1 do ScreenScore não foi sobre quantidade de features, mas sobre construir uma base sólida para evolução.
👉 Sistemas escalam pela qualidade das decisões, não pela complexidade.
- JWT / OAuth2
- Testes automatizados (unitários e integração)
- Evolução da arquitetura
- Observabilidade e métricas
Feedbacks são sempre bem-vindos! 🚀