Uma empresa chamada Unstrict performou bem no ano de 2019, conseguiu angariar mais contratos de projetos de software e gostaria de iniciar o desenvolvimento de seus próprios produtos.
Para isso a Unstrict precisava melhorar seu processo de contratação de novos funcionários. Uma parte que consume um bom tempo do processo é a filtragem de currículo.
Um dos colaboradores teve a ideia de criar um filtro de currículos para as vagas python da empresa. O programa, apesar de simples, já trouxe um certo ganho de tempo no processo.
O Filtro de Curriculum Vitae faz o seguinte processamento:
-
Lê currículos em PDF de uma pasta local da máquina
-
Lê todo o texto do documento
-
Busca um número de telefone no texto
-
Busca a palavra "python" no código
-
Se não encontra o telefone ou a palavra python no projeto, o candidato é descartado
-
Retorna na saída do programa uma lista de e-mails
A Unstrict recebeu alguns currículos de menores de idade, essas pessoas devem ser descartadas.
A empresa também abriu uma vaga de desenvolvimento Javascript.
E não é mais necessário ter um telefone para contato, apenas o e-mail é o suficiente.
Não é possível adicionar esses novos comportamentos no código que existe sem alterá-lo. Refatore o código que existe para que isso seja possível, depois altere os comportamentos descritos.
Consulte como é possível fazer isso na branch refactor
deste repositório
Faça com que a validação seja extraída para um arquivo de configuração JSON. E troque a entrada do programa para receber um desses JSON, seguido da lista de e-mails.
Com o programa do jeito que está, é possível baixar currículos de outras fontes? Dado um e-mail, tentar procurar o arquivo local e se não encontrar, consultar um endereço com o currículo (ex: https://unstrict.com.br/cvs/email.pdf) ?
É possível suportar outros formatos de arquivo?
Refatore o código para que seja fácil adicionar os requisitos acima sem precisar mexer muito no código que existir.