Teste técnico para Desenvolvedor Full Stack na Climatempo, empresa de serviços meteorológicos.
Web App que exibe dados de previsão do tempo por cidade pesquisada, consumindo os dados através de API RESTful.
- Análise Lighthouse: 100% Performace | 100% Acessibilidade | 100% Boas práticas | 100% SEO
-
Protótipo da interface no Figma.
-
Documentação da API no Postman.
-
Docker imagens:
tayhsn/climateapp
etayhsn/climateapi
- Responsividade Mobile, Tablet e Desktop
- Tratamento de erro caso não obtenha os dados da cidade pesquisada
- O usuário pode escolher visualizar a temperatura em Celsius ou Fahrenheit (padrão é Celsius) e a precipitação da chuva em Milímetros ou Polegadas (padrão é Milímetros)
- Persistir os dados no MongoDB
- Implementar ElasticSearch para autocompletar a pesquisa
- Adicionar API GraphQL
- Implementar testes unitários
- Typescript
- Node.js, Express.js, Cors
- React.js, Styled-components, RadixUI, Phosphor-react, Zod, React-hook-form, Axios
Para informações detalhadas de como rodar o app, leia PROJECT.md
Um usuário quer saber como vai ficar o tempo para os próximos dias em Osasco e São Paulo utilizando seu smartphone.
Requisitos:
-
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;
Permita que o usuário selecione em qual unidade de temperatura e chuva (precipitação) ele quer visualizar os dados.
- Temperatura:
- de °C pra °F: (
valor
* 1.8) + 32 - de °F pra °C: (
valor
- 32) / 1.8
- de °C pra °F: (
- Chuva:
- de mm pra inch: (
valor
/ 25.4) - de inch pra mm: (
valor
* 25.4)
- de mm pra inch: (
- Performance de busca e renderização;
- Segurança;
- Testes;
- Manutenibilidade;
- Usabilidade;
- Boas práticas;