Teste Técnico Frontend | Backend

Clima Tempo

Javascript, CSS, React, PHP, Node

São Paulo - Brasil

Meteorologia

50 - 200

O Grupo Climatempo é a maior empresa privada brasileira de meteorologia do país com sede na cidade de São Paulo.

Sobre o Teste

Desafio Full-stack: neste desafio, você usará suas habilidades em JavaScript, NodeJS, PHP, SQL, RESTful, ReactJS, HTML e CSS para criar uma aplicação responsiva de previsão do tempo com um campo autocomplete e cards de previsão. Além disso, será um grande diferencial o conhecimento em GraphQL, NoSQL e Docker. Aproveite a oportunidade para mostrar suas melhores práticas de desenvolvimento, desempenho, testes e segurança. Boa sorte!

Instruções do Teste

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