Olá caro desenvolvedor, nesse teste analisaremos seu conhecimento geral e inclusive velocidade de desenvolvimento. Abaixo explicaremos tudo o que será necessário.
Você deve desenvolver uma API, utilizando PHP (Framework Laravel 8).
A escolha das bibliotecas, banco de dados, arquitetura, etc, fica a seu critério.
O código precisa rodar em macOS ou Ubuntu (preferencialmente como container Docker).
Altere o arquivo README explicando o que é preciso para rodar sua aplicação.
A primeira etapa será o desenvolvimento backend/PHP:
Descrição:
- Você deverá desenvolver uma 'mini api' para que seja possível realizar operações CRUD do objeto Carro.
Obs:
- Você pode usar arquivo (txt, json, sqlite ou mysql) como banco de dados.
- Cada carro deve ter ID, Marca, Modelo, Ano.
Sugerimos o retorno dessa 'mini api' nas seguinte urls:
/carros
- [GET] deve retornar todos os carros cadastrados./carros
- [POST] deve cadastrar um novo carro./carros/{id}
[GET] deve retornar o carro com ID especificado./carros/{id}
[PUT] deve atualizar os dados do carro com ID especificado./carros/{id}
[DELETE] deve apagar o carro com ID especificado.
Para a segunda etapa do teste, você deverá desenvolver uma SPA (Single Page Application) com Vue.js e nela deve ser possível:
- Ver a lista de carros cadastrados
- Criar um novo carro
- Editar um carro existente
- Apagar um carro existente
Obs:
- A página deve ser responsiva.
- A página deve funcionar 100% via AJAX, sem outros carregamentos de páginas.
- Ao criar/editar um carro, o campo "marca" deverá ser um
SELECT
Dicas:
- Você pode usar frameworks, tanto para o front-end (a sua escolha), quanto para o back-end (Laravel 8).
- Você pode usar ferramentas de automação (Grunt, Gulp), mas deverá informar o uso completo para funcionamento do teste.
- Será considerado ponto positivo no teste a utilização de orientação a objetos, design patterns e rotinas para testes.
Para iniciar o teste, faça um fork deste repositório, crie uma branch com o seu nome completo e depois envie-nos o pull request. Se você apenas clonar o repositório não vai conseguir fazer push e depois vai ser mais complicado fazer o pull request.
- Organização do código, separação de módulos, legibilidade e comentários.
- Histórico de commits.
Quaisquer dúvidas que você venha a ter, abra você mesmo uma nova issue, ou mande um emai.