Teste para vaga de Engenheiro full stack Junior

Nesse teste analisaremos seu conhecimento geral, velocidade de desenvolvimento e capacidade de melhoria.

Instruções

Utilizando o framework PHP Laravel, e um banco de dados relacional SQLite, MySQL ou Postgres, você vai criar uma aplicação de cadastro de pedidos de compra com as seguintes funcionalidades:

  • CRUD de clientes.

  • CRUD de produtos.

  • CRUD de pedidos de compra, com status (Em Aberto, Pago ou Cancelado).

  • Cada CRUD:

    • conter lista dos itens cadastrados, com filtro e ordenação para tods os campos apresentados.
    • deve possuir formulários para criação e atualização de seus itens.
    • deve permitir a deleção de qualquer item de sua lista.
  • API Rest JSON para todos os CRUDS listados.

Banco

  • O banco de dados deve ser criado utilizando Migrations do framework Laravel, e também utilizar Seeds e Factorys para popular as informações no banco de dados.
  • Implementação das validações necessárias.

Tecnologias:

  • HTML
  • CSS
  • Javascript(Poderá ser utilizado frameworks)
  • Framework Laravel (PHP)
  • Docker (construção do ambiente de desenvolvimento)

Entrega

  • Para iniciar o teste, faça um fork deste repositório; Se você apenas clonar o repositório não vai conseguir fazer push.
  • Crie uma branch com o seu nome completo;
  • Altere o arquivo teste-engenheiro-junior.md com as informações necessárias para executar o seu teste (comandos, migrations, seeds, etc);
  • Depois de finalizado, envie-nos o pull request;

Bônus

  • Implementar autenticação de usuário na aplicação.
  • Implementar aplicação de desconto em alguns pedidos de compra.

O que iremos analisar

  • Organização do código;
  • Aplicação de design patterns;
  • Separação de módulos e componentes;
  • Legibilidade;
  • Criação do ambiente com Docker.
  • Inovação e melhorias.
  • Evolução do front end.