README.md

September 1, 2021 · View on GitHub

Climatempo


Processo de recrutamento

Olá desenvolvedor, pronto para participar do nosso processo de recrutamento para vaga de Full-stack?

Sobre a Vaga

  • Home Office
  • Flexibilidade no horário de trabalho
  • Sede: Parque Tecnológico - São José dos Campos (http://www.pqtec.org.br)

Requisitos para a vaga

Bons conhecimentos em:

  • Javascript
  • NodeJS
  • PHP
  • SQL
  • RESTful
  • ReactJS
  • HTML
  • CSS

Desejável:

  • GraphQL
  • NoSQL
  • Docker

O Desafio

Um usuário quer saber como vai ficar o tempo para os próximos dias em Osasco e São Paulo utilizando seu smartphone.

O que esperamos:

Frontend:
  • Uma página responsiva;
  • Um campo autocomplete para buscar localidades;
  • Um card para cada dia de previsão;
Backend:
  • Uma API rest ou graphql para obter localidades e dados de previsão;
  • Validação de entradas do usuário;

Diferenciais:

  • Utilizar cache;
  • Utilizar Elasticsearch ou algum outro software de full-text search para busca de localidades;
  • Configurar ambiente docker para rodar a aplicação;
uso de bibliotecas é livre.

Desafio Extra (opcional)

Permita que o usuário selecione em qual unidade de temperatura e chuva (precipitação) ele quer visualizar os dados.

Design livre.
Conversão dos valores:
  • Temperatura:
    • de °C pra °F: (valor * 1.8) + 32
    • de °F pra °C: (valor - 32) / 1.8
  • Chuva:
    • de mm pra inch: (valor / 25.4)
    • de inch pra mm: (valor * 25.4)

Avaliação

O que vamos avaliar:

  • Performance de busca e renderização;
  • Segurança;
  • Testes;
  • Manutenibilidade;
  • Usabilidade;
  • Boas práticas;

Exemplo:

Climatempo

Atenção: Não se preocupe em reproduzir o exemplo, use apenas como referência.

Dados

Localidades:

base/locales.json
PropriedadeTipoDescrição
idNumberId da localidade
nameStringNome da localidade
stateStringSigla do estado da localidade
latitudeNumberLatitude do centro da localidade
longitudeNumberLongitude do centro da localidade

Previsão:

base/weather.json

period: Object

PropriedadeTipoDescrição
period.beginStringData início da busca no formato AAAA-MM-DD
period.end StringData fim da busca no formato AAAA-MM-DD

locale: Object

Os mesmos dados do JSON de localidades.

weather: Object

PropriedadeTipoDescrição
weather.dateStringData da previsão no formato AAAA-MM-DD
weather.textStringTexto sobre a previsão do dia
weather.temperature.minNumberTemperatura mínima em graus celsius (°C)
weather.temperature.maxNumberTemperatura máxima em graus celsius (°C)
weather.rain.probabilityNumberProbabilidade de chuva em porcentagem (%)
weather.rain.precipitationNumberPrecipitação de chuva em milímetros (mm)

Comece

O processo do desafio deve ser:

  1. Faça o fork do desafio.

  2. Crie um PROJECT.md com a explicação de como devemos executar o projeto e com o máximo de detalhes possível do que foi feito.

  3. Após concluir faça um pull request, preencha o formulario


Qualquer dúvida entre em contato com nossa equipe.