Seja bem-vindo candidato!
Como um desenvolvedor Back-End na Stoom uma das maiores responsabilidades que você vai ter é desenvolver funcionalidades e corrigir bugs em sistemas de e-commerce de larga escala que utilizam Spring Boot. Com base nisso, precisamos de sua ajuda para construir a nossa loja Stoom, que deve conter as seguintes funcionalidades:
- Deve ser desenvolvida uma API de CRUD de produtos
- Os produtos devem ser enriquecidos com as informações que você julgar relevante para o funcionamento em uma loja,
algumas são obrigatórias:
- Categorias
- Marca
- Preços
- Deve existir um endpoint na API para a busca de produtos que será utilizada na loja
- Deve existir um endpoint que lista os produtos de uma determinada Marca
- Deve existir um endpoint que lista os produtos de uma determinada Categoria
- Produtos podem ser inativados para não aparecerem na busca ou nas listagens sem a necessidade de serem deletados para poderem ser reativados posteriormente
- Marcas e categorias também podem ser inativados para não aparecerem na loja
Informações relevantes:
- Atente-se à todos os pré-requisitos estabelecidos, porém não limite-se a eles, ideias novas ou melhorias são sempre bem-vindas 😃
- Você tem total liberdade para fazer qualquer tipo de alteração em qualquer ponto do código (contanto que não alterem a maneira de execução da aplicação)
- Se possível, adicione uma collection do Postman no repositório para conseguirmos testar o código da mesma forma que você
- Boas práticas, legibilidade, testes e performance são alguns dos pontos que serão considerados durante a avaliação
Boa sorte!
- Clone o projeto:
git clone https://github.com/dayvidsonveiga/teste-stoom.git
- Abra um terminal na raiz do projeto e execute o comando abaixo para gerar o .jar da aplicação:
mvn clean install -Dskiptests
- Em seguida navegue até a pasta docker localizada na raiz do projeto e inicialize os containers docker com o comando:
cd docker && docker-compose up -d
- Acesse a interface dos recursos do backend através do swagger usando o endereço local http://localhost:8080
Método | Path | Descrição |
---|---|---|
POST | /api/v1/brands | Criar marca |
GET | /api/v1/brands/{id} | Listar marca por id |
GET | /api/v1/brands | Listar todas as marcas |
PUT | /api/v1/brands/{id} | Atualizar status marca por id |
GET | /api/v1/brands/{id}/products | Listar todos produtos por marca |
Método | Path | Descrição |
---|---|---|
POST | /api/v1/categories | Criar categoria |
GET | /api/v1/categories/{id} | Listar categoria por id |
GET | /api/v1/categories | Listar todas as categoria |
PUT | /api/v1/categories/{id} | Atualizar status categoria por id |
GET | /api/v1/categories/{id}/products | Listar todos produtos por categoria |
Método | Path | Descrição |
---|---|---|
POST | /api/v1/products | Criar produto |
GET | /api/v1/products/{id} | Listar produto por id |
GET | /api/v1/products | Listar todos os produtos |
PUT | /api/v1/products/{id} | Atualizar status produto por id |
- Testes de integração