|
1 | 1 | ## Objetivo do desafio
|
2 | 2 |
|
3 |
| -Construir uma API Restful em python que atinja o seguinte objetivo: dois metodos get onde será executado um processamento em cima de uma base de dados local localizada no diretório /src/datasets/ e retornará o resultado desse processamento. |
| 3 | +A partir das informações disponíveis no diretório ./src/datasets/ gere uma estimativa de custo para o "projeto 4" e informe o nível de acuracidade da sua estimativa. Documente a solução com clareza, além das etapas ou ferramentas usadas no processo. |
4 | 4 |
|
5 | 5 | ## Como começar o desafio
|
6 | 6 |
|
7 |
| -Dar um fork no projeto, clonar o repositório em sua máquina local e criar um branch novo para o seu código. |
| 7 | +Dar um fork no projeto, clonar o repositório em sua máquina local, e caso veja a necessidade de usar código, criar um branch novo, lenvando o nome do candidato. |
| 8 | +Não é obrigatório o uso de código para entregar o objetivo do desafio, mas caso use, esse código deve ser carregado na nova branch criada na entrega do desafio. |
8 | 9 |
|
9 | 10 | ## Histórias
|
10 | 11 |
|
11 |
| -• Ao utilizar o método get_list_of_constructions_form_ref eu preciso que seja retornado uma lista do campo "Ref" somente onde o campo "Report Forms Status" for "Closed" usando a dataset denominado "construction_data_forms.csv" |
| 12 | +• Como orçamentista, eu gostaria de um previsão do orçamento da casa denominada "Projeto 4" em reais. |
12 | 13 |
|
13 |
| -• Ao utilizar o método get_constructions_tasks_date_range eu preciso que seja retornado três valores referentes ao campo "Status Changed" do dataset denominado "construction_data_tasks.csv": a data mais antiga do conjunto, a data mais recente do conjunto e total de dias entre as duas datas, Exemplo: start_date: 01/01/2023; end_date: 31/01/2023; total_in_days: 30 |
| 14 | +• Como engenheiro responsável pelo projeto, eu gostaria de ter a documentação completa do metodo usado para chegar ao valor previsto para o "Projeto 4", incluindo cálculos. |
14 | 15 |
|
15 |
| -• Você precisa disponibilziar a documentação básica da API para que possa ser utilizada por um terceiro que não conhece seu código. |
| 16 | +• Como gerente comercial da conta do cliente do "Projeto 4", eu gostaria de ter uma base estatistica para indicar o quão aproximado o valor estipulado está da realidade, e no caso de variação, quanto para mais ou menos esse valor pode variar. |
16 | 17 |
|
17 |
| -• É necessário que a API possa ser testada através de um método interativo, como por exemplo, usando Swagger UI. |
18 |
| - |
19 |
| -• Eu preciso ter um arquivo dockerfile para poder virtualizar a aplicação, gerando uma imagem dela para rodar com docker. Importante enviar as orientações de "docker run" para rodar o projeto. |
| 18 | +• Como responsável pela gestão de risco de projetos, eu gostaria de entender o risco implicito nessa previsão, indicando o que pode impactar em outliers ou variações acima do previsto. |
20 | 19 |
|
21 | 20 | ## Referências
|
22 | 21 |
|
23 | 22 | • Os datasets necessário para o teste se encontram no diretório /src/datasets/ dentro do projeto.
|
24 | 23 |
|
25 |
| -• Os datasets trazidos nesse projeto são abertos e originados do link: https://www.kaggle.com/datasets/claytonmiller/construction-and-project-management-example-data |
26 |
| - |
27 |
| -## Observações |
28 |
| - |
29 |
| -1. Utilize CORS aberto para qualquer origem de requisições. |
| 24 | +• Os datasets trazidos nesse projeto são amostras proprietárias da Makasí e devem ser usados única e exclusivamente para a finalidade desse desafio. |
30 | 25 |
|
31 |
| -2. Não é necessário criar metodos de autenticação, nesse momento você pode criar uma API de consulta pública e aberta. |
32 | 26 |
|
33 | 27 | ## Requisitos Técnicos para a entrega do teste
|
34 | 28 |
|
35 |
| -• Sugerimos a utilização do FastAPI para criação da aplicação. |
| 29 | +• Sugerimos a utilização de Python para o desenvolvimento do código. |
36 | 30 |
|
37 | 31 | • Utilize seus padrões de organização de projeto, documentação e código.
|
38 | 32 |
|
39 |
| -• Pode ser utilizada qualquer lib adicional que julgar importante para o bom funcionamento da aplicação, mas não se esqueça de dar as orientações de instalação delas (caso seja necessário) |
| 33 | +• Pode ser utilizada qualquer lib adicional que julgar importante para o bom funcionamento da exploração dos datasets, mas não se esqueça de dar as orientações de instalação delas (caso seja necessário) |
40 | 34 |
|
41 |
| -• A aplicação será rodada em localhost. |
| 35 | +• Caso haja uma aplicação em código, está será rodada em localhost. |
42 | 36 |
|
43 | 37 | • Ainda na documentação, explicar a sua motivação de escolha das libs e frameworks (ou o motivo de ter feito na mão). Uma explicação sobre a estrutura do projeto também será bem vinda.
|
44 | 38 |
|
45 |
| -• É imprescindível que o teste desenvolvido funcione corretamente em qualquer máquina. |
| 39 | +• É imprescindível que caso use código para executar o teste, este funcione corretamente em qualquer máquina. |
| 40 | + |
| 41 | +• Documentos adicionais (PDF, PowerPoint, Planilhas e etc) ao teste devem ser compartilhados e enviados para [email protected] |
| 42 | + |
| 43 | +• O prazo máximo para o envio o teste é de 5 dias uteis. Caso este prazo não seja viável, basta informar quando poderá entregá-lo pelo mesmo e-mail em que recebeu o teste. |
46 | 44 |
|
47 | 45 |
|
48 | 46 | ## Observações importantes
|
49 | 47 |
|
50 |
| -A ideia deste desafio é entender como você domina os conceitos de desenvolvimento de APIs, serviços, processamentos, virtualização e documentação. |
| 48 | +A ideia deste desafio é entender como você domina os conceitos de exploração de dados, modelos de previsão, análise de risco e documentação. |
51 | 49 |
|
52 |
| -Não é pra ser um teste exaustivo. Objetivo é entregar a solução proposta de forma direta mas de forma replicavel, funcional e documentada para uso. |
| 50 | +Fique à vontade para optar pelos caminhos que desejar sobre qualquer ponto que esteja ausente na instrução. Nossa intenção também é entender como você toma decisões. De qualquer forma, você pode fazer perguntas por e-mail. |
53 | 51 |
|
54 | 52 | Além do que foi pedido nos requisitos técnicos acima, não existe “certo e errado”, da mesma forma que não vamos levar tudo ao pé da letra nos mínimos detalhes.
|
55 | 53 |
|
56 | 54 | ## Considerações finais
|
57 | 55 |
|
58 |
| -Buscamos entender seu perfil de desenvolvimento, resolução de problemas, raciocinio lógico e boas práticas de desenvolvimento. O papel desse profissional dentro do time é desenvolver serviços específicos da camada analítica e automação da empresa, dessa forma, buscamos profissionais criativos e orientados a solução. |
| 56 | +Buscamos entender seu perfil de desenvolvimento, resolução de problemas, raciocinio lógico e boas práticas de análise e ciência de dados. |
59 | 57 |
|
60 | 58 | Esperamos que você vá além do mínimo proposto e demostre o conhecimento que tem. O teste tem gaps propositais para você sugerir soluções, desenvolver ideias e provar na prática o porque a sua decisão pode ter um impacto positivo nessa tarefa.
|
61 | 59 |
|
|
0 commit comments