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.

Vista de calendario de RainLogger

Vista de gráfico de RainLogger

Vista de tabla de RainLogger

Nueva entrada de registro de RainLogger

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.