Skip to content

Latest commit

 

History

History
231 lines (157 loc) · 7.96 KB

README.md

File metadata and controls

231 lines (157 loc) · 7.96 KB
Progress

Logo

Challenge Charlie

Projeto em NextJS para Previsão do Tempo

Uma aplicação Web responsiva desenvolvida em NextJS que consulta a API Open Weather para pesquisar a previsão do tempo.

Versão do NextJS Versão do Typescript Versão do ChakraUI Versão do React Hook Form Versão do Nookies Versão do Jest Versão do Testing Library


Demo

Demo FIGMA: https://www.figma.com/challenge-charlie

Demo FRONT-END: https://challenge-charlie-mu.vercel.app/


Tecnologias

Linguagens e Ferramentas:

Front-end:

Testes:

Padronização de Código:

Auxiliares


Como usar

Clone o projeto e acesse a pasta:

$ git clone git@github.com:vitoremanuelqf/challenge-charlie.git && cd challenge-charlie

Siga os passos a baixo para rodar a aplicação localmente:

# Certifique-se de que todas as variáveis de ambiente estão com as chaves das APIs ativas.

# Instale as dependências:
$ yarn

# Inciar a aplicação
$ yarn start

Open http://localhost:3000


Para rodar os testes:

# Instale as dependências:
$ yarn

# Rodar o comando de teste:
$ yarn test

Tests

Siga os passos a baixo para rodar a aplicação com Docker e Makefile:

Development environment:

make build-development
make start-development

Open http://localhost:3001


Staging environment:

make build-staging
make start-staging

Open http://localhost:3002


Production environment:

make build-production
make start-production

Open http://localhost:3003



Arquitetura

public/
|---- images/
src/
|---- assets/
|---- components/
|---- contexts/
|---- functions/
|---- hooks/
|---- pages/
|---- styles/
|---- tests/
|---- types/

Decisões Técnicas

Next.js:

O Next.js é conhecido por oferecer suporte para renderização do lado do servidor, o que pode melhorar significativamente o desempenho da página, especialmente em conexões de internet mais lentas. Quanto a performance, o Next.js é projetado para oferecer o melhor desempenho, utilizando estratégias como o pré-carregamento de páginas e o lazy loading para melhorar o tempo de carregamento.


ChakraUI:

O ChakraUI permite a criação de interfaces de usuário rapidamente, sem precisar escrever CSS personalizado ou estilizar cada componente individualmente. Isso economiza tempo e aumenta a produtividade. O framework também se preocupa com a acessibilidade, e seus componentes são projetados com esse recurso em mente. Isso significa que você pode criar interfaces de usuário que sejam acessíveis.


React Hook Form:

O React Hook Form é projetado para ser flexível e escalável, permitindo que os desenvolvedores escolham as bibliotecas de UI que desejam usar e personalizem as funcionalidades de validação e manipulação de dados para atender às suas necessidades específicas, sendo assim, é possível criar formulários em React de forma mais rápida e fácil, reduzindo a quantidade de código necessário e melhorando a eficiência e desempenho do aplicativo.


Nookies:

Nookies é uma biblioteca de gerenciamento de cookies em JavaScript que pode ser utilizada em aplicações web. Ela permite que desenvolvedores gerenciem cookies no lado do cliente de forma fácil e flexível.


Desafios

  • Contornar o erro de CORS ao consumir a API do bing, em meio a pesquisas encontrei a solução com a implementação da feature de API Routes do NextJS

  • Elaborar e implementar os testes com Jest e Testing Library


Melhorias

Alert:

  • O uso de alertas na web é uma forma eficaz de exibir informações importantes ou notificações aos usuários de um site ou aplicação web.


Skeleton:

  • O uso de skeleton para loading (ou carregamento) é uma técnica que pode melhorar significativamente a experiência do usuário em aplicações web ou mobile, especialmente em situações em que há carregamento assíncrono de conteúdo.


Sugestões de Pesquisa no Input:

  • O uso de sugestões de autocompletar (ou autopreencher) em campos de entrada de formulários em aplicações web ou mobile pode ajudar a melhorar a experiência do usuário de várias maneiras, uma delas é evitar erros de digitação e garantir que os dados inseridos estejam precisos e consistentes.

  • Para implementar as sugestões de autopreenchimento, foi necessário integrar a API de localidades dos serviços de dados do IBGE. A integração com a API de localidades do IBGE foi fundamental para viabilizar as sugestões de autopreenchimento em nosso sistema. Por meio dessa integração, conseguimos acessar informações precisas e atualizadas sobre as localidades do país, o que nos permitiu fornecer sugestões relevantes e confiáveis aos usuários.


Contato

Qualquer dúvida, sugestão ou crítica estarei à disposição!

Obrigado pela oportunidade!

E-mail: vitoremanuelqf@gmail.com

WhatsApp: (15) 99605-5714

LinkedIn: https://www.linkedin.com/in/vitoremanuelqf