Teste para vaga de Analista Desenvolvedor PHP

Projeto

Desenvolver uma aplicação simples com um CRUD de produtos

Requisitos

CRUD de Produtos

Criar o gerenciamento de categorias do Sistema, onde seja possível Listar, Criar, Editar e Excluir Produtos.

Atributos de um Produto são:
  • Nome
  • Descrição
  • Quantidade
  • Preço
  • Data/Hora de Cadastro
  • Data/Hora da Última Atualização

Descrição da Aplicação

Home

  • Uma home simples com um menu para o Controle de Produtos
  • Deve apresentar um quadro que mostre todos os produtos que estão com 3 ou menos volumes em estoque.
  • Deve apresentar um quadro com os cinco últimos produtos movimentados no estoque.

Controle de Produtos

  • Um botão no topo para o cadastramento de um novo Produto.
  • Uma listagem com todos os produtos cadastrados no sistema, ordenados por Nome e Preço. Os campos que serão apresentados na listagem são: id, nome, quantidade, preço e Ação.
    • A coluna com o nome do produto deve ser um link que direciona o usuário aos detalhes do produto (Pode ser um Modal).
    • A coluna Ação deve possuir quatro botões, Editar, Excluir, Reduzir Estoque, Aumentar Estoque.
      • Botão Editar - Deve direcionar o usuário a uma tela onde o Nome, Descrição, Preço e Quantidade do produto possam ser Alterados.
      • Botão Excluir - Exclui o Produto do Sistema.
      • Botão Reduzir o Estoque - Deve reduzir em 1 a quantidade do Produto no Estoque.
      • Botão Aumentar o Estoque - Deve aumentar em 1 a quantidade do Produto no Estoque.
    • As linhas onde a quantidade de produtos seja igual ou inferior a 3 devem possuir um destaque a escolha do desenvolvedor.

Instruções:

  • Faça fork desse repositório envie um Pull Request quando estiver pronto.
  • Últilizar php 5.6 ou superior
  • Últilizar Banco de Dados MySQL ou MariaDB
    • As tabelas devem ser criadas através de Migrations.
  • Obrigatório o uso de Orientação a Objeto.
  • PROIBIDO o uso de qualquer framework.
  • Últilizar as bibliotecas pdo para efetuar a comunicação com o Banco de Dados
  • Seguir os padrões das PSRs (Saiba mais aqui e aqui).
  • Criar um README.md com as instruções de como instalar a aplicação. (Pasta raiz, migrations, configuração do ambiente e banco de dados)
  • Os Design Patterns de Factory e Repository são obrigatórios!
  • Evite ao máximo usar bibliotecas de terceros.

Boa Sorte!