Skip to main content

No project description provided

Project description

Period Tracker

period-tracker is a lightweight, easy-to-use Python application to track menstrual cycles, analyse cycle statistics, and visualise your data.

Features

  • Record period start dates and durations
  • Analyse cycle statistics (average length, standard deviation, min, max)
  • Data persistence using JSON files
  • Visualize cycle length with matplotlib
  • Secure your data using GPG asymmetric encryption.

Screenshots

Here’s a few screenshots of the Period Tracker app in action:

Period Tracker Screenshot

Period Tracker Screenshot 2

Installation

Prerequisites

  • Python 3.7 or higher
  • pip + pipx installed (recommended for isolated installs)
  • git
  • gpg (GNU Privacy Guard) must be installed and accessible in your system path.

From source

Clone the repository and install:

git clone https://codeberg.org/kingorgg/period_tracker.git
cd period_tracker
pipx install .

Usage

After installation, launch the tracker using the CLI command:

period-tracker

(OPTIONAL) create a shortcut

Copy the following content (replace USERNAME with your actual username) to a new file at:

$HOME/.local/share/applications/period-tracker.desktop
[Desktop Entry]
Name=Period Tracker
GenericName=Period Tracker
Exec=/home/USERNAME/.local/bin/period-tracker
Terminal=false
Type=Application
Categories=Other;

Uninstallation

To uninstall the package installed via pipx:

pipx uninstall period-tracker

Data Encryption

Period Tracker uses GPG asymmetric encryption to protect your data.

How it works

The app encrypts your data file (data.json) using your GPG public key. Only your corresponding private key can decrypt it.

Requirements

Make sure you have a GPG key pair generated (using gpg --gen-key). When you first load the period-tracker, you'll be prompted to enter your email address or key ID/fingerprint.

You can check what keys you have by running:

gpg --list-keys

Data Storage

Data is stored locally and encrypted with gpg in:

$HOME/.period-tracker/data.json.gpg # Linux

C:\Users\USERNAME\AppData\Local\period-tracker\data.json.gpg # Windows

Development

For development, install optional dependencies:

pip install .[dev]

Run tests with:

pytest tests/

License

This project is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

period_tracker-0.0.8.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

period_tracker-0.0.8-py3-none-any.whl (12.1 kB view details)

Uploaded Python 3

File details

Details for the file period_tracker-0.0.8.tar.gz.

File metadata

  • Download URL: period_tracker-0.0.8.tar.gz
  • Upload date:
  • Size: 11.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.2

File hashes

Hashes for period_tracker-0.0.8.tar.gz
Algorithm Hash digest
SHA256 4b089455ec59b685f2d8ac1e885083545b33a94705532e8c8b022c3a02d0314c
MD5 faeeacfe62cf49fbbc32e340331aed23
BLAKE2b-256 152f64b7aa548d0940047156c5306a52e8fcb51a6e0e8bbaa9979d460ba09d90

See more details on using hashes here.

File details

Details for the file period_tracker-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: period_tracker-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 12.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.2

File hashes

Hashes for period_tracker-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 8bec82422ca9f1cbf9b07cfd02df5f3a243c85feb45336d85f95e8ec6ad22bb6
MD5 859a2db3865854b3eecab1b7398f1601
BLAKE2b-256 e0807aff2f38472b97edb774cf13de510a4f1ee6be2d684a2dd470b6817a0736

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page