Giter VIP home page Giter VIP logo

test-skill-laravel-pleno's Introduction

🚀 Teste técnico para Desenvolvedor(a) Back-end Pleno na Ensinio

Este teste foi planejado para validar os conhecimentos necessários para a posição de Desenvolvedor(a) Back-end Pleno na Ensinio.

Serão avaliados aspectos relacionados aos conhecimentos em boas práticas de desenvolvimento, além dos conhecimentos nas tecnologias PHP, Laravel, e no seu ecosistema.

É esperado que você codifique com organização e siga os padrões determinados (estamos confiantes de que você pode vencer a vontade de fazer gambiarras 😜), e demonstre sua atenção em detalhes, capacidade de aprender e agregar valor.

Esperamos também que você se divirta e aprenda algo no processo. 😊

💡 A proposta

Você deve codificar, utilizando utilizando PHP, Laravel 8, Laravel Breeze e Inertia.js, um CRUD de clientes e produtos, onde clientes são donos de produtos, e produtos pertencem a uma loja específica em um cenário de marketplace (as lojas não possuem rotas CRUD). Segue abaixo um modelo conceitual de banco de dados (o diagrama a seguir não inclui o modelo das lojas):

Modelo Conceitual

Ao conceber a API para o CRUD dos produtos dos clientes, imagine que ela será consumida por um client do tipo SPA (Single Page Application), e utilize o Laravel Sanctum para a autenticação. Obs.: Não é necessário criar uma rota da API para visualizar os produtos de um cliente específico, mas sim uma rota para consultar os produtos disponíveis de todos os clientes.

Documente a API utilizando alguma ferramenta integrada como o Swagger ou congêneres.


Os dados das lojas devem ser importados dos arquivos .json contidos neste repositório. Como requisito, é necessário desenvolver com abstrações dos dados importados. Imagine que você possua produtos em diferentes lojas, por exemplo, no Mercado Livre, OLX, e afins. Suponha agora que você deseja realizar uma integração para vender todos os seus produtos em um único lugar. Para isso, é necessário consultar as APIs das diferentes lojas, e importar seus dados.

Coluna Valor Descrição
id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT Id único da Loja
name VARCHAR(255) NOT NUL Nome da loja
slug VARCHAR(255) NOT NULL Slug da loja - UNIQUE INDEX lojas (slug)
driver VARCHAR(255) NOT NULL Driver que irá receber as informações do pipeline - UNIQUE INDEX lojas (driver)
driver_meta JSON NULL DEFAULT NULL Informações salvas do driver
created_at TIMESTAMP NULL DEFAULT NULL Data de criação da loja
updated_at TIMESTAMP NULL DEFAULT NULL Data de atualização da loja

Por fim, forneça uma documentação, por meio de um arquivo "documentation.md", acerca do seu projeto. Inclua instruções completas para a execução da aplicação, e comentários que julgar pertinentes à avaliação.

🎯 Requisitos do projeto

  • Organização do código;
  • O código deve seguir o padrão PSR2;
  • Criar seeders com factory do Laravel para popular o banco de dados;
  • Fornecer uma documentação, incluindo instruções para a execução da sua aplicação.
  • Aplicar cache;
  • Escrever um ou mais testes :)

👏 Diferenciais

  • Utilizar mais uma camada entre o Modelo e o Controlador;
  • Usar broadcasting para atualizar via realtime quando um pipeline for sincronizado;

📄 Critérios de avaliação

  • A qualidade do seu código;
  • O cumprimento dos requisitos;
  • A estrutura do seu projeto: esperamos ver componentização coesa, reuso, encapsulamento, separação de responsabilidades, etc;
  • Seu empenho: não tem problema se algo não sair como desejado, mas tente! 😊

📧 Sobre a entrega

Pedimos que, por gentileza, entregue o teste em até 7 dias a partir do recebimento das instruções, respondendo à mesma conversa de email onde enviamos o link do desafio e incluindo o link de um repositório privado no GitHub. Neste repositório, adicione como colaborador o usuário @ensiniodevback ([email protected]).

Se por motivos de força maior não for possível cumprir com o prazo, por gentileza, nos informe respondendo à mesma conversa de email onde enviamos o link do desafio.

test-skill-laravel-pleno's People

Contributors

silviow avatar socramjunio2 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.