Programming challenge at R&B! Good luck.
A ideia deste desafio é nos permitir avaliar melhor as habilidades de candidatos às vagas de programador, de vários níveis.
Este desafio deve ser feito por você em sua casa. Gaste o tempo que você quiser, porém normalmente você não deve precisar de mais do que algumas horas.
- Temos um diretório que contém alguns arquivos .json, precisamos ter um programa que leia esses arquivos e transforme-os em arquivos XML e envie para um endpoint. Esta API, por sua vez, irá salvar em um banco de dados e precisamos exibir os dados cadastrados.
-
Depois de definido o diretório, o mesmo deve ser monitorado, pois podem chegar mais arquivos .json a serem processados.
-
A transmissão precisa ser em formato XML mesmo que você transforme dos dois lados para JSON.
-
Exibir esses dados cadastrados em uma tabela.
-
Permitir filtar, por características: amigos em comum, inimigos em comum e o que mais você julgar necessário.
-
Conseguir mesclar filtros (EX: Amigos com características)
-
O céu é o limite na interface, fique à vontade.
-
Autenticação
-
Interface bonitinha tipo o Kenny
-
100% Javascript
-
Usando Docker pra executar a aplicação
-
Faça um fork deste repositório, desenvolva sua super app e, ao finalizar, nos envie um pull request
-
As tecnologias você define, pois aqui usamos de tudo um pouco.
-
Registre tudo: testes que forem executados, ideias que gostaria de implementar se tivesse tempo (explique como você as resolveria, se houvesse tempo), decisões que forem tomadas e seus porquês, arquiteturas que forem testadas e os motivos de terem sido modificadas ou abandonadas.
-
Crie um arquivo COMMENTS.md ou HISTORY.md no seu fork para registrar essas reflexões e decisões.
-
Performance importa (Imagine um Json com 1Gb de dados)
-
Existem arquivos dentro do diretório files chamados de personagens.zip, pode descomprimir e realizar os testes.
-
Use ferramentas e bibliotecas open-source, mas documente as decisões e porquês;
-
Automatize o máximo possível;
-
Em caso de dúvidas, pergunte.
-
Sua solução será submetida a uma bateria de testes de performance.
-
Seu código será observado por uma equipe de desenvolvedores que avaliarão a simplicidade e clareza da solução, a arquitetura, documentação, estilo de código, testes unitários, testes funcionais, nível de automação dos testes, o design da interface e a implementação do código.