Software Products & Security Labs
Lumera
Cycle, tests, medication and notes in one calm calendar.
In short
Lumera is a mobile-first PWA for keeping track of the menstrual cycle, ovulation and pregnancy tests, medication, notes and reminders in one calendar. Predictions are always shown as predictions and as a range, kept apart from real entries. The app does not diagnose and is not a method of contraception. The project is in development; a test version runs at staging.gevher.site.
Starting point
Cycle, tests and medication often end up in different apps or notes, and many cycle apps mix predictions with real data or ask for an account early on. What was needed was a simple app that clearly separates entries from estimates and treats health data with restraint.
My role
Research, product and UX specification, prototype, frontend, API and deployment, all implemented by me as a personal product project.
Solution
An installable PWA (Vite, vanilla JavaScript and CSS) with Today, Calendar, Analysis and Profile sections and a short onboarding. Users choose which modules are visible (period, ovulation test, medication, basal body temperature, cervical mucus). The app works without an account; an optional account runs on a lean PHP API with MariaDB. Health entries are not sent to the server.
Technologies
Key functionality
- Today view with cycle day, week strip, estimated next period and data confidence with a "How was this calculated?" explanation
- Calendar with month and week views; predictions dashed, real entries filled
- Logging of periods, LH and pregnancy tests, basal body temperature, symptoms and notes
- Medication and supplements with a schedule and "taken / skipped / snoozed" status
- Selectable modules and three themes (pink, baby blue, dark)
- Use without an account or with an optional account (register, log in, log out, delete account)
- Installable as a PWA, offline start via service worker
Security & performance
- Health entries currently stay on the device and are not sent to the server
- Password hashing with Argon2id (where available), HttpOnly/Secure/SameSite=Strict session cookie and session ID regeneration
- CSRF token and Origin check, prepared statements, rate limits for login, registration and account deletion
- IP addresses and emails stored only as HMAC hashes for rate limiting; configuration outside the web root
- Test version set to noindex, no external CDNs
Outcome
- Test version at staging.gevher.site with onboarding, all main views and the account system
- The health data shown is demo data; the prediction algorithm, encrypted sync and push notifications are still to come
Not released yet. User numbers are not stated.
Next project