Rainlogger
Un servicio para registrar y seguir las precipitaciones.
RainLogger
Registro de lluvia, para sustituir el calendario de papel que se usaba en una granja familiar.
Aplicación · Código frontend · Código backend
Mi granja familiar siempre ha registrado las lecturas del pluviómetro a mano, día a día, en un calendario de papel. Funciona, pero no suma, no crea gráficos y no sobrevive a una taza de café que se cae. Construí RainLogger para reemplazar ese calendario con algo que registre una lectura en dos toques y que realmente te muestre el patrón detrás de los números.




Qué hace
- Registra una medición de precipitación para un día y ubicación específicos en segundos
- Vistas de tabla, calendario y gráfico de barras de los mismos datos — filtra por mes, año y ubicación
- Múltiples ubicaciones, múltiples usuarios autenticados, un historial compartido
- Instalable como aplicación en teléfono o escritorio, disponible en español e inglés
Cómo está construido
Un SPA de React 19 + TypeScript (React Router 7, MUI) que se comunica con una API de Express 5 + MongoDB.
- Biblioteca de componentes compartida — la vista de calendario se construye sobre
@macolmenerori/component-library, un paquete que publico y mantengo yo mismo, para que se mantenga consistente con mis otros proyectos en lugar de reimplementarse en cada aplicación. - Autenticación como servicio independiente — el inicio de sesión y las sesiones se manejan mediante un microservicio JWT independiente (
opensesame-back) con el que esta aplicación se comunica por HTTPS, compartido entre varios de mis proyectos en lugar de duplicarse en cada API. - PWA instalable — un service worker precarga el shell de la aplicación y se actualiza automáticamente en segundo plano, por lo que se abre al instante.
- CI/CD — cada pull request en ambos repositorios ejecuta una puerta de verificación completa (auditoría, linting, tipos, pruebas, construcción) en GitHub Actions; todo el stack — base de datos, autenticación, API y frontend — también se levanta en un comando con Docker Compose y datos de demostración precargados.
Echa un vistazo a la aplicación en vivo — es lo que reemplazó el calendario de la pared.