Lumina

Publicado hace 16 días
17 vistas
NodejS EJS; CSS y JS
Portada completa de Lumina

🌑 Lumina: Rastreo Lunar y Meteorológico Avanzado

Lumina es una aplicación web interactiva diseñada para conectar a los usuarios con su entorno astronómico. La plataforma permite localizar la posición exacta de la luna en el cielo, evaluar las condiciones meteorológicas en tiempo real y determinar la visibilidad lunar, todo esto utilizando tecnologías web nativas.

✨ Características Principales

  • Posicionamiento Inmersivo: Utiliza la API de Sensores del dispositivo móvil (giroscopio y magnetómetro) para guiar al usuario visualmente hacia la ubicación actual de la luna en la bóveda celeste.
  • Análisis Meteorológico en Vivo: Cruza los datos de ubicación con APIs del clima para determinar la nubosidad y calcular si la luna es visible a simple vista desde la posición del usuario.
  • Privacidad por Diseño (Privacy-First): La plataforma fue construida con una arquitectura de datos efímera. Los datos de geolocalización y telemetría del usuario se procesan estrictamente en la memoria del dispositivo (Client-side) y nunca son almacenados, enviados a bases de datos ni recopilados.

🛠️ Arquitectura y Tecnologías

El proyecto prescinde de frameworks pesados en el frontend para maximizar el rendimiento y la velocidad de carga, utilizando un stack eficiente:

  • Backend (Node.js & Express): Servidor robusto para el enrutamiento seguro y la comunicación con APIs de terceros (clima y astronomía) ocultando las llaves de acceso (API Keys).
  • Frontend (EJS): Motor de plantillas dinámico para renderizar la interfaz desde el servidor de forma rápida.
  • Estilos (CSS3 Puro): Diseño inmersivo, animaciones fluidas y Modo Oscuro nativo sin depender de librerías externas.
  • Lógica Core (Vanilla JS): Manejo asíncrono de la Geolocation API y DeviceOrientation API directamente desde el DOM.

🚀 Instalación y Ejecución local

Para correr este proyecto en tu entorno local, clona el repositorio y ejecuta:


# 1. Instalar dependencias
npm install

# 2. Configurar variables de entorno (Crear archivo .env)
# Añadir las API Keys correspondientes del clima

# 3. Iniciar el servidor
npm start

Nota: Para probar las funcionalidades de sensores móviles en desarrollo local, es posible que necesites exponer tu localhost a través de HTTPS (ej. usando ngrok), ya que los navegadores modernos exigen contextos seguros para acceder a la ubicación y al giroscopio.