CatalogoVita personale ›Benessere

Tracker ciclo mestruale — calendario privato

Un diario minimo per il ciclo mestruale: registri la data di inizio e la durata, e l'app calcola da sola quando è previsto il prossimo. A differenza di diverse app di settore finite al centro di polemiche sulla privacy, qui i dati restano **solo sul tuo dispositivo** — niente account, niente server, niente sincronizzazione col produttore: il calendario del ciclo è tra le informazioni più personali che esistano, e qui non esce mai dal telefono.

▶ Usa questa app

ciclo mestrualecalendariosaluteprivacybenessere

Cosa registra

  • Durata del ciclo in giorni, es. 28

Come funziona

Questa è un'app Reactive: un semplice documento di testo che il browser trasforma in un'app funzionante — moduli, dati dal vivo, tabelle, statistiche e persino grafici, senza installare né configurare nulla.

  1. Usala subito. Premi «Usa questa app»: si apre subito nel tuo browser, già pronta, con i dati salvati solo sul tuo dispositivo.
  2. I tuoi dati restano tuoi. Tutto è memorizzato in locale sul dispositivo, separato per ogni app: niente account, niente server, niente da configurare.
  3. Rendila tua. Il testo qui sotto è l'app per intero: copialo, cambia campi, viste e parole, e le modifiche diventano subito interattive.
  4. Condividila come file. Un'app è un semplice file: salvalo, esportalo o condividilo con un link; e con la collaborazione cifrata più persone modificano gli stessi dati in tempo reale.
Il testo dell'app
# 🩸 Tracker ciclo mestruale

Un diario minimo per il ciclo mestruale: registri la data di inizio e la
durata, e l'app calcola da sola quando è previsto il prossimo. A differenza
di diverse app di settore finite al centro di polemiche sulla privacy, qui i
dati restano **solo sul tuo dispositivo** — niente account, niente server,
niente sincronizzazione col produttore: il calendario del ciclo è tra le
informazioni più personali che esistano, e qui non esce mai dal telefono.

::::form{path="cicli" id="fci"}
::input{form="fci" field="inizio" type="date" required="true" legend="Inizio ciclo"}
::input{form="fci" field="durata" type="number" placeholder="Durata del ciclo in giorni, es. 28" required="true"}
::add-form{form="fci" path="cicli" label="Registra ciclo"}
::::

## Storico

:::sort{path="cicli" field="inizio" order="desc" as="table" headers="Inizio,Durata (giorni)" deletable="true" editform="fci"}
{inizio} | {durata}
:::

:::python{data="cicli"}
```
from datetime import date, timedelta

righe = data["cicli"]
if righe:
    ordinate = sorted(righe, key=lambda r: r.get("inizio", ""))
    ultimo = ordinate[-1]
    durata = int(ultimo.get("durata") or 28)
    inizio = date.fromisoformat(ultimo["inizio"])
    prossimo = inizio + timedelta(days=durata)
    print(f"Prossimo ciclo previsto: {prossimo.strftime('%d/%m/%Y')}")
else:
    print("Registra almeno un ciclo per vedere la previsione.")
```
:::

Ogni volta che aggiungi un nuovo ciclo la previsione si ricalcola da sola,
partendo dall'ultima data registrata: basta tenere aggiornato lo storico qui
sopra.