Skip to content

Commit a51a829

Browse files
initial commit
1 parent 6582413 commit a51a829

9 files changed

+535
-23005
lines changed

README.md

+19-21
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,59 @@
11
## Objetivo do desafio
22

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.
44

55
## Como começar o desafio
66

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.
89

910
## Histórias
1011

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.
1213

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.
1415

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.
1617

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.
2019

2120
## Referências
2221

2322
• Os datasets necessário para o teste se encontram no diretório /src/datasets/ dentro do projeto.
2423

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.
3025

31-
2. Não é necessário criar metodos de autenticação, nesse momento você pode criar uma API de consulta pública e aberta.
3226

3327
## Requisitos Técnicos para a entrega do teste
3428

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.
3630

3731
• Utilize seus padrões de organização de projeto, documentação e código.
3832

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)
4034

41-
A aplicação será rodada em localhost.
35+
Caso haja uma aplicação em código, está será rodada em localhost.
4236

4337
• 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.
4438

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.
4644

4745

4846
## Observações importantes
4947

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.
5149

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.
5351

5452
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.
5553

5654
## Considerações finais
5755

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.
5957

6058
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.
6159

0 commit comments

Comments
 (0)