Skip to content

vosource/projeto-teste

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Varejonline - Projeto

Projeto avaliativo para novos colaboradores.

Iniciando

O projeto consiste no desenvolvimento de um pequeno sistema de Controle de Estoque com os seguintes requisitos:

Requisitos não funcionais

  • Utilizar o BD H2 do Spring Boot;
  • Todos os dados necessários para a execução e utilização do projeto deverão ser enviados junto com o código feito;
  • Deverá ser utilizado o Spring Security para controle de acesso;

Requisitos funcionais

  • 1- Deverão existir 2 perfis de usuários para o acesso as funcionalidades: OPERADOR, GERENTE.
  • 2- O sistema deverá ter uma tela para permitir o cadastro e edição de produtos com os seguintes campos ( somente GERENTE ):
    • Id: Deverá ser um sequencial único, mostrado somente em modo de edição sem permitir sua alteração;
    • Código de barras: Código de barras do produto, sendo um campo do tipo literal. Não poderá exisitr mais de um produto com o mesmo código de barras;
    • Nome: Nome do produto, sendo um campo do tipo literal;
    • Quantidade mínima: Quantidade mínima do produto em estoque, sendo um campo do tipo numérico;
    • Saldo inicial: Saldo inicial do produto no momento do cadastro, sendo um campo do tipo numérico;
      • Não será possível sua alteração após o cadastro;
      • Ao cadastrar um valor superior a 0, uma movimentação de SALDO_INICIAL deverá ser criada para o produto;
      • O Saldo inicial não poderá ser inferior a quantidade mínima
  • 3- O sistema deverá ter uma tela para permitir o lançamento das movimentações de estoque com os seguintes campos (GERENTE e OPERADOR):
    • Produto: Campo para permitir informar/selecionar um produto previamente cadastrado;
    • Tipo de Movimento: Os tipos de movimentação possíveis são: ENTRADA, SAÍDA, SALDO_INICIAL, AJUSTE_ENTRADA e AJUSTE_SAÍDA;
      • Somente o GERENTE pode realizar lançamentos do tipo SALDO_INICIAL e AJUSTE;
      • Deverá existir no máximo 1 lançamento do tipo SALDO_INICIAL por produto;
      • O lançamento de SALDO_INICIAL somente poderá ser realizado se não existirem outros lançamentos para o produto;
      • O lançamento de AJUSTE somente poderá ser realizado quando existirem outros lançamentos para o produto;
    • Quantidade: Quantidade a ser movimentada no estoque.
      • O sistema não poderá permitir lançamentos em que o saldo do produto se torne negativo;
    • Data: Data da movimentação.
      • Não poderá ter movimentação para um determinado produto anterior a sua criação;
    • Motivo: Motivo da Movimentação
    • Documento: Documento vinculado a movimentação, mostrar somente quando a movimentação for do tipo ENTRADA ou SAÍDA;
  • 4- O sistema deverá ter uma tela para listar as movimentações de estoque com os seguintes campos:
    • Filtros:
      • Produto: Permitir filtrar os lançamentos por produto;
      • Período: Permitir filtrar os lançamentos de um determinado período;
      • Tipo de Movimento: Permitir filtrar os lançamentos de um determinado Tipo de Movimento;
    • Ordenações:
      • Produto
      • Data
    • Campos da Listagem:
      • Data do Movimento
      • Produto
      • Tipo do Movimento
      • Documento
      • Motivo
      • Saldo: Calculado considerando (Saldo Inicial + Entradas + Ajustes de Entrada - Saídas - Ajustes de Saída);
      • Situação: Caso o produto tiver valor para o campo Quantidade Mínima, e o Saldo for inferior a ele, mostrar Inferior ao Mínimo do contrário, mostrar Ok;

Estrutura do Projeto

Dentro desse repositório pode-se encontrar 2 projetos, o frontend e o server, sendo eles:

  • frontend: Projeto em Angular que deve conter todas a camada de apresentação do projeto (telas, formatações...).
    • A inicialização do projeto é feito pelo comando npm install onde será feito o download das dependências. (Obs.: Necessário ter o Angular CLI - 12.2.17^).
    • A execução do projeto é feita pelo comando npm start que rodará o projeto na porta 4200.
    • Todas as chamadas serão feitas para o server através da porta 8081 já configurada no proxy-config.json. Essa configuração faz com que toda a requisição para /server/... seja redirecionado para o server.
  • server: Projeto em Java - Spring Boot que deve conter todas as regras de negócio da aplicação, incluindo as regras de segurança de acesso.