Descripción del Proyecto
Mi Factura de Luz es una herramienta analítica dirigida a consumidores españoles con tarifas eléctricas PVPC (Precio Voluntario para el Pequeño Consumidor). El portal calcula y muestra las variaciones horarias del precio de la luz de hoy, mañana e históricos, ayudando a los hogares a programar sus consumos en las franjas más económicas para ahorrar en sus facturas.
El Reto Técnico
El desafío radicaba en la ingesta masiva de datos y su representación visual sin penalizar el rendimiento del servidor ni los tiempos de carga (FCP/LCP) en móviles. La API de Red Eléctrica de España (REE) publica diariamente los precios a las 20:15 para el día siguiente. Si el servidor procesaba las peticiones a la API directamente con cada visita, la lentitud del servicio externo causaba bloqueos de hilos de ejecución de PHP. Además, los gráficos interactivos no podían depender de librerías pesadas en JavaScript para evitar penalizaciones en el rendimiento móvil.
La Solución Implementada
Desarrollé una arquitectura en Laravel basada en sincronización en background y componentes visuales reactivos ligeros:
- Tareas Programadas (Laravel Scheduler): Creé un comando de consola personalizado en Laravel programado para ejecutarse cada hora. A las 20:20, el script descarga el JSON de precios de la API de REE, lo normaliza e inserta en la base de datos local. Esto elimina por completo cualquier latencia de APIs externas durante las visitas de los usuarios.
- Gráficos Interactivos Ultraligeros: En lugar de usar librerías de gráficos sobredimensionadas, diseñé un generador dinámico que convierte los datos directamente en elementos SVG en el lado del servidor, optimizados con pequeños retoques de CSS para hacerlos interactivos y totalmente adaptables a pantallas móviles.
- Algoritmo de Recomendación de Ahorro: Desarrollé una lógica interna que calcula las medias del día y clasifica las 24 franjas horarias en niveles: "Óptimo" (verde), "Moderado" (naranja) y "Evitar" (rojo), ofreciendo un widget de semáforo de consumo instantáneo al usuario.
Resultados Obtenidos
El portal es capaz de resolver miles de peticiones simultáneas consumiendo menos de 50MB de RAM por proceso. La carga del DOM es instantánea y los usuarios obtienen las tarifas eléctricas del día en menos de 0.3 segundos, obteniendo excelentes métricas SEO y una tasa de retención de usuarios muy elevada.