Skip to content

alwin-m/ROS-Cycle-Project

Repository files navigation

ROS Cycle Logo

🌸 ROS Cycle

Free Period Tracker & Menstrual Cycle Calendar

Track Your Cycle — Privately, Transparently, and on Your Terms

License: MIT Open Source Privacy First No Cloud Platform

✨ Features · 📐 How It Works · 🚀 Getting Started · 🛡️ Privacy · 🤝 Contribute


🌺 What is ROS Cycle?

ROS Cycle is an open-source, privacy-first menstrual cycle tracker that runs entirely on your device. No accounts. No cloud. No telemetry. Just honest, math-backed predictions you can actually understand.

Unlike commercial trackers that hide their logic behind black-box algorithms, ROS Cycle is built on transparent, explainable mathematics — so you always know how and why a prediction is made.

ROS Cycle is a tracker, not a diagnostic tool. Predictions are estimates based on your inputs, not medical advice.


✨ Features

Feature Description
🗓️ 12-Month Calendar View See your entire predicted cycle year at a glance
🌡️ Probabilistic Fertile Windows Gradient fertility bands instead of misleading binary labels
🎯 Ovulation Likelihood Peaks Gaussian-modeled peak estimates with uncertainty baked in
📊 Confidence Indicators Know how reliable your predictions are, based on your cycle stability
📄 Exportable PDF Reports Generate and save reports — fully local, never uploaded
🩺 PCOD Symptom Checklist Optional, non-diagnostic symptom awareness tool
🔒 100% On-Device Zero data transmission. Always.

📐 How It Works

ROS Cycle uses a two-layer mathematical model: a deterministic core anchored to your cycle data, layered with probabilistic reasoning to represent real biological uncertainty.

Inputs

Input Symbol Required
Last Menstrual Period start date D₀ ✅ Yes
Average cycle length (days) μ_C ✅ Yes
Estimated cycle variability (± days) σ_C Optional
Average period length (days) P Optional

1. 🔢 Cycle Day Index

For any calendar date Dₙ, the cycle-relative day is:

CycleDay(Dₙ) = (Dₙ − D₀) mod μ_C

Converts any absolute date into a repeating cycle position, anchoring all phase calculations.


2. 🌿 Phase Boundaries

Phase Range
🔴 Menstrual 0 ≤ d < P
🟡 Follicular P ≤ d < (μ_C − 14)
🟢 Ovulation Center d = (μ_C − 14)
🔵 Luteal (μ_C − 14) < d < μ_C

3. 📈 Probabilistic Ovulation Model

Ovulation is never certain. ROS Cycle models it with a Gaussian distribution:

P_ov(d) = exp( −(d − (μ_C − 14))² / 2(σ_C + δ)² )
  • δ ≈ 1–2 days of biological noise is always included
  • Confidence smoothly decreases the further a day is from the expected ovulation center
  • Output: a likelihood value between 0 and 1 per cycle day

4. 🌈 Fertility Probability Bands

Band Condition
🔴 High Fertility P_ov(d) > 0.6
🟠 Medium Fertility 0.25 < P_ov(d) ≤ 0.6
🟢 Low Fertility P_ov(d) ≤ 0.25

No false certainty. Just gradients that reflect reality.


5. 🧮 Confidence Score

Confidence = 1 − (σ_C / μ_C)    [clamped to 0–1]
Confidence Meaning
High Short, stable, predictable cycle
Medium Some variability present
Low High variability — predictions less reliable

🚀 Getting Started

# Clone the repository
git clone https://github.com/YOUR_USERNAME/ros-cycle.git

# Navigate into the project
cd ros-cycle

# Install dependencies
npm install

# Start the app locally
npm start

⚡ Everything runs in your browser or on your machine. No backend, no server, no sign-up.


🛡️ Privacy First by Design

ROS Cycle was built around a core principle: your health data belongs to you, and only you.

  • ✅ All computation is local-only
  • No accounts required
  • No cloud storage, no sync, no telemetry
  • No behavioral tracking or background learning
  • ✅ Fully auditable open-source code
  • ✅ Predictable, deterministic outputs given the same inputs

🩺 PCOD Symptom Checker

ROS Cycle includes an optional symptom awareness checklist for common PCOD-related symptoms.

  • Summarizes symptom count
  • Encourages you to speak with a healthcare professional when appropriate
  • Does not influence cycle predictions
  • Does not perform any diagnosis

📤 Output Summary

  • 🗓️ 12-month cycle calendar
  • 🎯 Probability-informed fertile windows
  • 📈 Ovulation likelihood peaks
  • 📉 Cycle confidence indicators
  • 📄 Local-only exportable PDF reports

🤝 Contributing

Contributions are warmly welcome! We especially value work that:

  • 💡 Improves explainability of predictions
  • ♿ Enhances accessibility
  • 📊 Extends visualization clarity
  • 🔒 Preserves the privacy-first architecture

How to Contribute

# Fork the repo, then:
git checkout -b feature/your-feature-name
git commit -m "feat: describe your change"
git push origin feature/your-feature-name
# Open a Pull Request 🎉

⚠️ Feature proposals requiring cloud storage or opaque inference models will be carefully reviewed to ensure they align with ROS Cycle's core values.


⚠️ Disclaimer

ROS Cycle is an educational and informational tool. Menstrual cycles are influenced by stress, illness, hormonal conditions, medications, and lifestyle factors. All predictions are estimates and may vary significantly.

Always consult a qualified healthcare professional for medical concerns.


📄 License

MIT License — free to use, modify, and distribute.

See LICENSE for full terms.


Made with 🌸 for privacy, transparency, and cycle awareness.

ROS Cycle — because your data should stay yours.

About

ROS Cycle is a minimal, web-based period tracking application designed to help young women track their menstrual cycles

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages