O desafio é desenvolver um programa que permita realizar as seguintes buscas:
- Listar os órgãos, códigos e editais dos concursos públicos que encaixam no perfil do candidato tomando como base o CPF do candidato ;
- Listar o nome, data de nascimento e o CPF dos candidatos que se encaixam no perfil do concurso tomando com base o Código do Concurso do concurso público;
O arquivo candidatos.txt contém as informações dos candidatos:
Nome | Data de Nascimento | CPF | Profissões |
---|---|---|---|
Lindsey Craft | 19/05/1976 | 182.845.084-34 | [carpinteiro] |
Jackie Dawson | 14/08/1970 | 311.667.973-47 | [marceneiro, assistente administrativo] |
Cory Mendoza | 11/02/1957 | 565.512.353-92 | [carpinteiro, marceneiro] |
O arquivo concursos.txt contém as informações dos concursos públicos:
Órgão | Edital | Código do Concurso | Lista de vagas |
---|---|---|---|
SEDU | 9/2016 | 61828450843 | [analista de sistemas, marceneiro] |
SEJUS | 15/2017 | 61828450843 | [carpinteiro,professor de matemática,assistente administrativo] |
SEJUS | 17/2017 | 95655123539 | [professor de matemática] |
Escolha as tecnologias que você vai usar e tente montar uma solução completa para rodar a aplicação.
Para enviar o resultado, basta realiazar um Fork deste repositório e abra um Pull Request, com seu nome e o número de inscrição.
É importante comentar que deve ser enviado apenas o código fonte. Não aceitaremos códigos compilados.
Por fim, o candidato deve atualizar o Readme.md com as seguintes informações:
- Documentação da solução;
- Lista dos diferenciais implementados
- Link do projeto no WakaTime. Veja um exemplo.
O programa será avaliado levando em conta os seguintes critérios:
Critério | Valor |
---|---|
Legibilidade do Código | 10 |
Documentação do código | 10 |
Documentação da solução | 10 |
Tratamento de Erros | 10 |
Total | 40 |
A pontuação do candidato será a soma dos valores obtidos nos critérios acima.
O candidato pode aumentar a sua pontuação na seleção implementando um ou mais dos itens abaixo:
Item | Pontos Ganhos |
---|---|
Criar um serviço com o problema | 30 |
Utilizar banco de dados | 30 |
Implementar Clean Code | 20 |
Implementar o padrão de programação da tecnologia escolhida | 20 |
Qualidade de Código com SonarQube | 15 |
Implementar testes unitários | 15 |
Implementar testes comportamentais | 15 |
Implementar integração com Travis | 10 |
Implementar integração com Travis + SonarQube | 10 |
Implementar usando Docker | 5 |
Total | 170 |
A nota final do candidato será acrescido dos pontos referente ao item implementado corretamente.
O candidato será desclassifiado nas seguintes situações:
- Submeter um solução que não funcione;
- Não cumprir os critérios presentes no seção Avaliação
- Plágio