Teste Técnico Frontend
GetNinjas
Pessoas desejam comprar serviços, contudo, não encontram prestadores. Ao mesmo tempo, pessoas querem vender serviços, entretanto, não encontram clientes. GetNinjas é uma plataforma que conecta esses dois grupos. What you need, when you need it- done.
Sobre o Teste
Para o teste, você deve utilizar as seguintes tecnologias: ES6, linters, task runners/build tools como Webpack, Gulp ou Grunt. É permitido o uso do Sass/Scss, desde que seja justificável. Ferramentas de teste como Jest, Jasmine, Mocha, Chai, Sinon e Supertest também são liberadas. Não é permitido o uso de frameworks de JS (React, Vue, Angular, Ember), bibliotecas de utilidades (Underscore, Lodash), frameworks/bibliotecas CSS (Bootstrap, Foundation, Materializecss), mas você pode utilizar qualquer metodologia de arquitetura de código. O objetivo do teste é avaliar a organização, semântica, funcionamento e usabilidade, uso e abuso das features das linguagens (HTML, CSS e JS), uso de patterns, performance do código e testes de JavaScript. É necessário criar um servidor em Node.JS para servir o fields.json como uma API, podendo utilizar o Express se preferir. O formulário a ser renderizado é o de pedidos, disponível aqui, utilizando o fields.json para montar os campos na view. É necessário exibir a mensagem "este campo é requerido" para os campos marcados como required: true. Campos do tipo enumerable devem ser exibidos como select. O formulário não precisa fazer POST. É essencial que você inclua testes unitários ou de integração. Se desejar, crie uma rota no Node.js para exibir o formulário em um HTML.
Instruções do Teste
Pré-requisitos
O que é permitido:
- ES6
- Linters no geral tanto para JS como para CSS
- Task runners/build tools como Webpack, Gulp, Grunt e afins.
O que não é permitido:
- Frameworks de JS no geral (React, Vue, Angular, Ember e afins)
- Bibliotecas de utilidades (Underscore, Lodash e afins)
- Frameworks/Bibliotecas CSS (Bootstrap, Foundation, Materializecss e afins) . Você pode utilizar qualquer metodologia de arquitetura de código.
Se preferir, o uso de Sass/Scss é liberado, contanto que seu uso seja justificável.
O uso de ferramentas de teste é liberado (jest, jasmine, mocha, chai, sinon, supertest).
O objetivo desse teste é avaliar:
- organização;
- semântica;
- funcionamento e usabilidade
- uso e abuso das features das linguagens (HTML, CSS e JS);
- uso de patterns;
- performance do código;
- testes de JavaScript.
Teste
Você precisará criar um servidor, em Node.JS, pra servir o fields.json
, que está na raiz do projeto, como uma API.
Se preferir, o uso do Express é permitido.
O formulário a ser renderizado é o de pedidos, da forma que é exibido aqui. Através do fields.json
você precisará montar os campos na view.
Informações adicionais
- É necessário exibir a mensagem "este campo é requerido" para os marcados como
required: true
; - Campos do tipo
enumerable
sãoselect
; - O formulário não precisa fazer
POST
; - Temos uma cultura de testes unitários e de integração. Uma dessas formas, pelo menos, é essencial pra esse teste;
- Se quiser, faça uma rota no Node.js pra exibir o formulário num HTML.