Requisitos Funcionais
- Aplicação backend em Java 21 para cadastro de usuários e produtos.
- Exposição de API REST completa para operações CRUD (Create, Read, Update, Delete).
- Persistência de dados em PostgreSQL.
- Integração com API externa de validação (por exemplo, consulta de CEP), com gravação e reprodução de respostas via VHS (VCR Java).
- Testes automatizados cobrindo fluxos principais, exceções e integrações.
Requisitos Não Funcionais
- Backend desenvolvido em Java 21 com Spring Boot 3 e Spring Data JPA.
- Banco de dados PostgreSQL, executado em contêiner durante os testes com Testcontainers.
- Testes automatizados:
- Unitários: com JUnit 5 e Mockito.
- Integração: com Testcontainers e banco PostgreSQL real.
- HTTP externos: gravados e reproduzidos com VHS (VCR Java).
- CI no GitHub Actions executando build, testes e análise de cobertura.
- Execução local padronizada com Docker Compose e perfis de configuração (
dev, test, prod).
- Documentação técnica mínima:
- Diagrama UML de classes e sequência para o fluxo de cadastro.
- README.md com setup, comandos de build, execução e testes.
Tecnologias e Bibliotecas
Backend
- Java 21, Spring Boot 3, Spring Data JPA, Spring Web.
- PostgreSQL (produção e teste).
- Testcontainers → isolamento de ambiente de teste.