Voltar aos projetos
Sobre o Projeto
Aplicação web moderna e responsiva que exibe dados meteorológicos em tempo real para qualquer localidade. Detecta automaticamente a localização do usuário via IP e integra múltiplas APIs para buscar informações de clima, traduzir pesquisas e exibir imagens dos locais. Implementa cache inteligente de imagens e sistema de notificações toast com fila de execução. O servidor foi desenvolvido em Node.js puro, sem dependências externas, pesando apenas 24KB, com suporte a compressão Brotli para otimização de requests.
Funcionalidades
Detecção Automática de Localização
Identifica o IP do usuário automaticamente ao acessar a aplicação, exibindo as informações meteorológicas do local correspondente logo na inicialização.
Pesquisa de Clima com Imagens Dinâmicas
Permite buscar informações meteorológicas de qualquer localidade, exibindo uma foto do local pesquisado junto com dados detalhados do clima como temperatura, umidade, precipitação e velocidade do vento.
Tradução Automática Integrada
Traduz automaticamente as pesquisas de português para inglês antes de buscar as informações, garantindo resultados mais precisos e relevantes.
Sistema de Cache de Imagens
Armazena imagens de locais já pesquisados anteriormente usando streams de leitura e escrita, acelerando carregamentos futuros e reduzindo requisições desnecessárias.
Notificações Toast com Fila de Execução
Sistema de notificações com gerenciamento de fila que exibe apenas um card por vez, com timer visual e possibilidade de dispensar manualmente, garantindo melhor experiência do usuário.
Desafios
Integração Eficiente de Múltiplas APIs
Garantir que o tempo de requisição das diferentes APIs (clima, tradução, geolocalização e imagens) não fosse excessivo e implementando bloqueio do processo em caso de erros.
Implementação de Cache com Streams
Desenvolver um sistema de cache de imagens usando streams de leitura e escrita, com limpeza automática a cada novo build para manter apenas dados relevantes.
Sistema de Fila para Notificações Toast
Criar um sistema de fila eficiente que permite exibir apenas uma notificação por vez, controlando timers e permitindo que o usuário avance manualmente ou aguarde o término automático.
Busca de Imagens Sem Limitações de Uso
Encontrar uma solução para exibir imagens dos locais pesquisados sem restrições de direitos autorais ou limitações de uso comercial.
Servidor em Node.js Puro
Construir um servidor web completo sem frameworks como Express, implementando compressão Brotli para otimização de arquivos, roteamento manual e tratamento de diferentes tipos de requisições.
Aprendizados
Desenvolvimento de Servidor Web do Zero
Compreensão profunda de como criar um servidor HTTP eficiente e seguro usando apenas Node.js puro, reduzindo o tamanho final do projeto de vários megabytes para apenas 24KB sem dependências externas.
Implementação de Cache com Streams
Domínio no uso de streams do Node.js para criar sistemas de cache eficientes, gerenciando leitura e escrita de arquivos de forma otimizada e controlando limpeza automática de dados.
Modificação de Bibliotecas Externas
Capacidade de analisar e modificar código de bibliotecas de terceiros para atender necessidades específicas, como adaptar a biblioteca de busca de imagens do DuckDuckGo para requisições mais leves.
Gerenciamento de Notificações com Fila
Técnicas para implementar sistemas de notificações toast com controle de fila, timers visuais e interação do usuário, garantindo uma melhor experiência final.