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.