Rainlogger
A service to log and track rainfall.
RainLogger
Rainfall logging, for a farm that used to track it on a paper calendar.
Live app · Frontend source · Backend source
My family farm has always logged rain gauge readings by hand, day by day, on a paper calendar. It works, but it doesn’t add up, doesn’t chart, and doesn’t survive a coffee spill. I built RainLogger to replace that calendar with something that logs a reading in two taps and actually shows you the pattern behind the numbers.




What it does
- Log a rainfall measurement for a given day and location in seconds
- Table, calendar, and bar-graph views of the same data — filter by month, year, and location
- Multiple locations, multiple authenticated users, one shared history
- Installable as an app on phone or desktop, works offline, Spanish and English
How it’s built
A React 19 + TypeScript SPA (React Router 7, MUI) talking to an Express 5 + MongoDB API.
- Shared component library — the calendar view is built on
@macolmenerori/component-library, a package I publish and maintain myself, so it stays consistent with my other projects instead of being reimplemented per app. - Auth as its own service — login and sessions are handled by a standalone JWT microservice (
opensesame-back) that this app talks to over HTTPS, shared across several of my projects rather than duplicated into each API. - Installable PWA — a service worker precaches the app shell and auto-updates in the background, so it opens instantly.
- CI/CD — every pull request on both repos runs a full verify gate (audit, lint, types, tests, build) in GitHub Actions; the whole stack — database, auth, API, and frontend — also spins up in one command with Docker Compose and seeded demo data.
Take a look at the live app — it’s what replaced the calendar on the wall.