A idéia deste desafio é nos permitir avaliar melhor as habilidades de candidatos à vagas de dev remoto, de vários níveis.
Este desafio deve ser feito por você, no máximo em uma semana, porém normalmente você não deve precisar de mais do que algumas horas.
Também serão aceitos projetos já desenvolvidos, de autoria própria, que atendam os critérios listados na seção Avaliação
. Se esse for o caso, basta enviar o ZIP do projeto para o email [email protected] com o título Desafio de programação
- Crie seu app e inicialize um repositório git.
- Faça commits (e pushs) conforme for terminando features.
- Crie instruções de execução da aplicação via Docker em seu README.md.
- Por fim, envie o link do seu repositorio para avaliarmos.
Você recebeu um arquivo de texto com os dados de vendas da empresa. Precisamos criar uma maneira para que estes dados sejam importados para um banco de dados.
Sua tarefa é criar uma interface web que aceite upload de arquivos, normalize os dados e armazene-os no banco de dados.
Sua aplicação web DEVE:
- Aceitar (via formulário) o upload de arquivos text, com dados separados por TAB. A primeira linha do arquivo tem o nome das colunas. Você pode assumir que as colunas estarão sempre nesta ordem e sempre haverá uma linha de cabeçalho. Um arquivo de exemplo chamado 'dados.txt' está incluído neste repositório.
- Interpretar ("parsear") o arquivo recebido, normalizar os dados, e salvar corretamente a informação em um banco de dados relacional.
- Exibir todos os registros importados, bem como a receita bruta total dos registros contidos no arquivo enviado após o upload + parser.
- A aplicação deve ser escrita obrigatoriamente em: Python 3.7+ ou PHP 7+ (dependendo da vaga que está se candidatando), utilizando qualquer framework de preferência.
- Executar via Docker ou Docker Compose.
- Utilizar apenas linguagens e bibliotecas livres ou gratuitas.
- Ter testes de model e controller automatizados.
- Ter uma boa aparência e ser fácil de usar.
Seu projeto será avaliado de acordo com os seguintes critérios.
- Sua aplicação atende funcionalmente o que foi pedido.
- 100% de cobertura de testes em models e controllers.
- Você documentou a maneira de rodar sua aplicação via Docker no README.md do projeto.
- Você seguiu as instruções enviadas.
- Voce segue as boas práticas de programação e entrega para o Cliente.
- O código escrito é facil de entender e manter.
- Você se preocupa com o uso do aplicativo pelo Usuário.
Adicionalmente, tentaremos verificar a sua familiarização com as bibliotecas padrões, bem como sua experiência com programação orientada a objetos a partir da estrutura de seu projeto, preocupação com o objetivo da aplicação e do seu uso pelo usuário, suporte e manutenção do código por outros desenvolvdores
A eureciclo se esforça para manter um ambiente seguro para todos os profissionais e candidatos, se você acha que tem um fit bom com a empresa, não importa como você se identifica, sua idade, gênero e localização geográfica, você é bem vindo, aplique! 🏳️🌈 🤎 👩🦱 🧑🦳