WeatherQC
WeatherQC es una aplicación de pronóstico meteorológico para el Quebec, construida con Svelte 5 y Node.js/Express. Funciona como PWA autoalojada, ofrece alertas push, mapas animados y soporte offline, utilizando datos gratuitos de Open-Meteo sin necesidad de claves API.
Ficha actualizada 24 sept 2026, 12:09 · upstream 24 sept 2026, 12:06 · release twa-v3+232
Qué es WeatherQC
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
WeatherQC es una aplicación web progresiva (PWA) diseñada específicamente para el Quebec, que combina un frontend moderno en Svelte 5 con un backend robusto en Node.js y Express. La arquitectura separa la lógica del servidor, que actúa como proxy-cache frente a APIs externas como Open-Meteo y RainViewer, del frontend que se sirve estáticamente mediante Nginx. Esto permite una gestión eficiente de recursos y una experiencia de usuario fluida, incluso con conexiones inestables gracias al caché del servicio worker.
La aplicación destaca por su enfoque en el auto-alojamiento y la privacidad, permitiendo a los usuarios desplegarla en infraestructura propia (ej. Raspberry Pi) sin depender de servicios centralizados. Incluye funcionalidades avanzadas como alertas push para cambios bruscos de clima, geocodificación por código postal canadiense y mapas interactivos con Leaflet. El despliegue se gestiona mediante Docker Compose, facilitando la orquestación del backend, el frontend y los servicios auxiliares en un entorno consistente.
El proyecto utiliza una infraestructura híbrida donde el backend maneja las llamadas a APIs externas y el frontend consume datos procesados, evitando exponer claves de API directamente al navegador. Esto mejora la seguridad y permite implementar políticas de caché agresivas para reducir latencia.
- Consultar condiciones meteorológicas locales en tiempo real para el Quebec.
- Recibir notificaciones push ante cambios bruscos como tormentas o heladas.
- Utilizar la aplicación sin conexión a internet gracias al caché PWA.
- Instalar la app en dispositivos Android mediante Trusted Web Activity (TWA).
- Desplegar una instancia propia para uso privado o comunitario auto-alojado.
- Visualizar mapas animados de satélites y radar de precipitaciones.
- Datos meteorológicos gratuitos sin necesidad de claves API mediante Open-Meteo.
- Arquitectura resiliente con circuit breaker y caché para mitigar fallos en APIs externas.
- PWA completa con soporte offline y precacheado de activos críticos.
- Despliegue simplificado mediante Docker Compose con gestión de entornos segura.
- Uso de Cloudflare Tunnel para HTTPS sin necesidad de certificados manuales.
- Frontend moderno Svelte 5 con optimización de rendimiento y carga diferida.
- Dependencia crítica de APIs externas (Open-Meteo, RainViewer) que pueden tener límites de tasa.
- Configuración manual requerida para variables de entorno como claves de mapas alternativos si el servicio principal falla.
- Complejidad técnica elevada (HIGH) que requiere conocimientos de Docker y gestión de servidores.
- El backend no tiene Dockerfile nativo, requiriendo construcción del stack desde compose.
- Las alertas push requieren configuración adicional de VAPID y permisos del navegador.
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
Utilizar `docker compose --env-file frontend/.env up --build -d` para producción. Configurar `backend/.env` con IP Tailscale si es necesario. No ejecutar `docker compose up` manualmente en prod por conflictos de puertos con el CI. Usar Cloudflare Tunnel para HTTPS automático. Para Android, seguir docs/android.md para configurar TWA y Play Console.
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Puede sustituir a
Relaciones detectadas por el análisis del repositorio y su categoría.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.