Bem-vindo ao desafio técnico para a vaga de Desenvolvedor Back-end na Sizebay!
Aqui você desenvolverá uma API RESTful para simular o gerenciamento de produtos e estoque de um e-commerce.
Desenvolver uma API RESTful para gerenciar:
- Cadastro de marcas e categorias
- Cadastro de produtos com variações
- Controle de entrada e saída de estoque
- Relatórios de movimentações e saldo
Você pode usar qualquer framework Java (Spring Boot, Quarkus, Micronaut etc.) ou Java puro.
- CRUD completo
- Campos:
nome,slug,ativo
- CRUD completo
- Campos:
nomeskudescricaoprecomarca_idcategoria_idtamanhos_disponiveiscores_disponiveis
- Registro de entradas e saídas por SKU
- Campos:
skuquantidadetipo(entrada/saida)data
- Consulta de saldo atual
- Java 17+
- Spring Boot (ou outro framework à sua escolha)
- Maven ou Gradle
- Banco de dados (PostgreSQL, MySQL ou outro)
- Swagger / OpenAPI
- Docker
- Docker Compose
Se estiver usando Maven:
./mvnw clean package -DskipTestsOu com Gradle:
./gradlew clean build -x testdocker build -t sizebay-backend:latest .docker-compose up -d- Swagger: http://localhost:8080/swagger-ui.html
- JSON e XML disponíveis via headers
Accept: application/jsonouapplication/xml
Se houver testes implementados:
./mvnw testou
./gradlew testResponda às perguntas abaixo neste README (ou em um arquivo separado, ex: RESPOSTAS.md):
- O que caracteriza uma API RESTful bem construída?
- Quais as vantagens de usar Swagger/OpenAPI?
- Como você versionaria essa API?
- Diferença entre chave primária e estrangeira?
- Como você modelou produto x estoque?
- Prós e contras de usar NoSQL nesse caso?
- Como garantiria entregas frequentes com qualidade?
- Qual a importância da comunicação entre times?
- O que significa CI/CD pra você?
- Que ferramentas usaria para automação e monitoramento?
- API RESTful funcional e documentada
- Dockerfile e docker-compose funcionais
- README com instruções completas
- CRUD de marcas, categorias e produtos
- Controle de estoque (entrada e saída)
- Autenticação (ex: JWT)
- Paginação e filtros
- TDD com testes unitários e integração
- Relatórios:
- Saldo por SKU
- Movimentação por período
- Faça um fork deste repositório
- Suba seu código em uma branch
mainoudevelop - Commitar frequentemente durante o desenvolvimento
- Inclua este README atualizado com:
- Instruções de execução
- Respostas ao questionário
- Link da documentação Swagger
Agradecemos sua dedicação e tempo. Boa sorte!
Esperamos te ver com a gente na Sizebay! 🚀