strength-tracker


Namestrength-tracker JSON
Version 1.0.0 PyPI version JSON
download
home_pagehttps://github.com/yourusername/strength-tracker
SummaryA comprehensive terminal-based workout tracking application for Mark Rippetoe's Starting Strength program
upload_time2025-08-07 10:29:15
maintainerNone
docs_urlNone
authorYour Name
requires_python>=3.8
licenseNone
keywords workout strength fitness tracking starting-strength rippetoe
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # StrengthTracker

StrengthTracker is a comprehensive, terminal-based workout tracking application for Mark Rippetoe's Starting Strength program. It tracks linear progression, manages deloads, calculates warmup sets, and maintains detailed workout history.

## Features

- **Linear Progression Tracking**: Automatically increases weights after successful workouts
- **Smart Deload Management**: Handles failed sets with configurable deload logic
- **Automatic Warmup Calculations**: Generates appropriate warmup sets for main lifts
- **Workout Scheduling**: Determines which workout is due based on the current week
- **Progress Analytics**: View workout history and current weights with detailed breakdowns
- **Local Data Storage**: All data stored in human-readable YAML format
- **Cross-platform**: Works on Windows, Mac, and Linux
- **Minimal Dependencies**: Just Python and a few lightweight packages

## Installation

### From PyPI (Recommended)
```bash
pip install strength-tracker
```

### From AUR (Arch User Repository)
```bash
# Using yay (recommended)
yay -S strength-tracker

# Using paru
paru -S strength-tracker
```

### From Source
```bash
# Clone the repository
git clone https://github.com/sipistab/strength-tracker.git
cd strength-tracker

# Install dependencies
pip install -r requirements.txt

# Install as a module
pip install -e .
```

## Usage

Run StrengthTracker:
```bash
python -m strength-tracker
```

The application will check for existing workout data in your home directory (`~/.strength_tracker/`). If no previous data exists, it will initialize with default Starting Strength starting weights.

## Project Structure

```
StrengthTracker/
├── strength_tracker/          # Software code
│   ├── __init__.py
│   └── strength_tracker.py   # Main application
├── config.yaml               # User configuration
├── requirements.txt           # Python dependencies
├── setup.py                  # Package setup
├── pyproject.toml            # Package configuration
├── PKGBUILD                  # AUR package build script
├── scripts/                  # Helper scripts
│   └── update-aur.sh        # AUR update script
└── ~/.strength_tracker/      # User data directory
    ├── workouts/             # Workout history
    ├── current_weights.yaml  # Current working weights
    └── failure_streaks.yaml  # Failure tracking
```

## Workout Program

Starting Strength follows a 3-day per week schedule:

- **Tuesday**: Week A or B workout
- **Thursday**: Week A or B workout  
- **Sunday**: Week A or B workout

### Week A Workout
1. **Squat** (3×5) - +2.5 kg per workout
2. **Bench Press** (3×5) - +2.5 kg per workout
3. **Deadlift** (1×5) - +5 kg per workout

### Week B Workout
1. **Squat** (3×5) - +2.5 kg per workout
2. **Overhead Press** (3×5) - +2.5 kg per workout
3. **Power Clean** (5×3) - +2.5 kg per workout

### Bonus Exercises (Every Week)
4. **Atlas Curl** (2×10) - Bodyweight
5. **Neck Curl** (3×15) - 5 kg starting weight
6. **Hanging Leg Raise** (3×10) - Bodyweight

## Configuration

The program uses a comprehensive YAML configuration system. You can customize your workout program by editing `config.yaml`:

```yaml
# Program Settings
program:
  name: "Starting Strength Program"
  schedule:
    days: [2, 4, 7]  # Tuesday, Thursday, Sunday

# Exercise Definitions
exercises:
  squat:
    starting_weight: 60
    progression: 2.5
    sets: 3
    reps: 5

# Workout Templates
workouts:
  week_A:
    - squat
    - bench_press
    - deadlift
    
  week_B:
    - squat
    - overhead_press
    - power_clean

# Bonus Exercises (repeat every week regardless of A/B cycle)
bonus_exercises:
  - atlas_curl
  - neck_curl
  - hanging_leg_raise

# Deload Settings
deload:
  stalling_attempts: 3
  reduce_percent: 10
```

## Analytics

The software tracks and displays:

- **Current Weights**: Per exercise with progress indicators
- **Workout History**: Complete session logs with dates and status
- **Progress Tracking**: Weight increases and deloads over time
- **Failure Streaks**: Consecutive failed sets per exercise
- **Session Details**: Sets, reps, weights, and completion status

## Context

This application implements Mark Rippetoe's Starting Strength program, designed for beginners to build strength quickly through consistent, progressive training with proper form. The program focuses on compound movements and linear progression, gradually increasing stress on the body until you can't, then managing deloads intelligently.

## Dependencies

- `click` (>=8.0.0) - Command line interface
- `rich` (>=10.0.0) - Beautiful terminal output
- `pyyaml` (>=6.0.0) - YAML file handling

## Development

This is a standalone application designed to be:
- **Self-contained**: All functionality in one file
- **Portable**: Can be moved to any directory
- **Simple**: Easy to understand and modify
- **Focused**: Does one thing well - Starting Strength tracking



## License

Free to use, modify, and distribute as you see fit.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/yourusername/strength-tracker",
    "name": "strength-tracker",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "Your Name <your.email@example.com>",
    "keywords": "workout, strength, fitness, tracking, starting-strength, rippetoe",
    "author": "Your Name",
    "author_email": "Your Name <your.email@example.com>",
    "download_url": "https://files.pythonhosted.org/packages/7d/54/3ebc6539bce9df95fc6308e3e30f789082cf42ad37bcdb5654a97d27601a/strength_tracker-1.0.0.tar.gz",
    "platform": null,
    "description": "# StrengthTracker\r\n\r\nStrengthTracker is a comprehensive, terminal-based workout tracking application for Mark Rippetoe's Starting Strength program. It tracks linear progression, manages deloads, calculates warmup sets, and maintains detailed workout history.\r\n\r\n## Features\r\n\r\n- **Linear Progression Tracking**: Automatically increases weights after successful workouts\r\n- **Smart Deload Management**: Handles failed sets with configurable deload logic\r\n- **Automatic Warmup Calculations**: Generates appropriate warmup sets for main lifts\r\n- **Workout Scheduling**: Determines which workout is due based on the current week\r\n- **Progress Analytics**: View workout history and current weights with detailed breakdowns\r\n- **Local Data Storage**: All data stored in human-readable YAML format\r\n- **Cross-platform**: Works on Windows, Mac, and Linux\r\n- **Minimal Dependencies**: Just Python and a few lightweight packages\r\n\r\n## Installation\r\n\r\n### From PyPI (Recommended)\r\n```bash\r\npip install strength-tracker\r\n```\r\n\r\n### From AUR (Arch User Repository)\r\n```bash\r\n# Using yay (recommended)\r\nyay -S strength-tracker\r\n\r\n# Using paru\r\nparu -S strength-tracker\r\n```\r\n\r\n### From Source\r\n```bash\r\n# Clone the repository\r\ngit clone https://github.com/sipistab/strength-tracker.git\r\ncd strength-tracker\r\n\r\n# Install dependencies\r\npip install -r requirements.txt\r\n\r\n# Install as a module\r\npip install -e .\r\n```\r\n\r\n## Usage\r\n\r\nRun StrengthTracker:\r\n```bash\r\npython -m strength-tracker\r\n```\r\n\r\nThe application will check for existing workout data in your home directory (`~/.strength_tracker/`). If no previous data exists, it will initialize with default Starting Strength starting weights.\r\n\r\n## Project Structure\r\n\r\n```\r\nStrengthTracker/\r\n\u251c\u2500\u2500 strength_tracker/          # Software code\r\n\u2502   \u251c\u2500\u2500 __init__.py\r\n\u2502   \u2514\u2500\u2500 strength_tracker.py   # Main application\r\n\u251c\u2500\u2500 config.yaml               # User configuration\r\n\u251c\u2500\u2500 requirements.txt           # Python dependencies\r\n\u251c\u2500\u2500 setup.py                  # Package setup\r\n\u251c\u2500\u2500 pyproject.toml            # Package configuration\r\n\u251c\u2500\u2500 PKGBUILD                  # AUR package build script\r\n\u251c\u2500\u2500 scripts/                  # Helper scripts\r\n\u2502   \u2514\u2500\u2500 update-aur.sh        # AUR update script\r\n\u2514\u2500\u2500 ~/.strength_tracker/      # User data directory\r\n    \u251c\u2500\u2500 workouts/             # Workout history\r\n    \u251c\u2500\u2500 current_weights.yaml  # Current working weights\r\n    \u2514\u2500\u2500 failure_streaks.yaml  # Failure tracking\r\n```\r\n\r\n## Workout Program\r\n\r\nStarting Strength follows a 3-day per week schedule:\r\n\r\n- **Tuesday**: Week A or B workout\r\n- **Thursday**: Week A or B workout  \r\n- **Sunday**: Week A or B workout\r\n\r\n### Week A Workout\r\n1. **Squat** (3\u00d75) - +2.5 kg per workout\r\n2. **Bench Press** (3\u00d75) - +2.5 kg per workout\r\n3. **Deadlift** (1\u00d75) - +5 kg per workout\r\n\r\n### Week B Workout\r\n1. **Squat** (3\u00d75) - +2.5 kg per workout\r\n2. **Overhead Press** (3\u00d75) - +2.5 kg per workout\r\n3. **Power Clean** (5\u00d73) - +2.5 kg per workout\r\n\r\n### Bonus Exercises (Every Week)\r\n4. **Atlas Curl** (2\u00d710) - Bodyweight\r\n5. **Neck Curl** (3\u00d715) - 5 kg starting weight\r\n6. **Hanging Leg Raise** (3\u00d710) - Bodyweight\r\n\r\n## Configuration\r\n\r\nThe program uses a comprehensive YAML configuration system. You can customize your workout program by editing `config.yaml`:\r\n\r\n```yaml\r\n# Program Settings\r\nprogram:\r\n  name: \"Starting Strength Program\"\r\n  schedule:\r\n    days: [2, 4, 7]  # Tuesday, Thursday, Sunday\r\n\r\n# Exercise Definitions\r\nexercises:\r\n  squat:\r\n    starting_weight: 60\r\n    progression: 2.5\r\n    sets: 3\r\n    reps: 5\r\n\r\n# Workout Templates\r\nworkouts:\r\n  week_A:\r\n    - squat\r\n    - bench_press\r\n    - deadlift\r\n    \r\n  week_B:\r\n    - squat\r\n    - overhead_press\r\n    - power_clean\r\n\r\n# Bonus Exercises (repeat every week regardless of A/B cycle)\r\nbonus_exercises:\r\n  - atlas_curl\r\n  - neck_curl\r\n  - hanging_leg_raise\r\n\r\n# Deload Settings\r\ndeload:\r\n  stalling_attempts: 3\r\n  reduce_percent: 10\r\n```\r\n\r\n## Analytics\r\n\r\nThe software tracks and displays:\r\n\r\n- **Current Weights**: Per exercise with progress indicators\r\n- **Workout History**: Complete session logs with dates and status\r\n- **Progress Tracking**: Weight increases and deloads over time\r\n- **Failure Streaks**: Consecutive failed sets per exercise\r\n- **Session Details**: Sets, reps, weights, and completion status\r\n\r\n## Context\r\n\r\nThis application implements Mark Rippetoe's Starting Strength program, designed for beginners to build strength quickly through consistent, progressive training with proper form. The program focuses on compound movements and linear progression, gradually increasing stress on the body until you can't, then managing deloads intelligently.\r\n\r\n## Dependencies\r\n\r\n- `click` (>=8.0.0) - Command line interface\r\n- `rich` (>=10.0.0) - Beautiful terminal output\r\n- `pyyaml` (>=6.0.0) - YAML file handling\r\n\r\n## Development\r\n\r\nThis is a standalone application designed to be:\r\n- **Self-contained**: All functionality in one file\r\n- **Portable**: Can be moved to any directory\r\n- **Simple**: Easy to understand and modify\r\n- **Focused**: Does one thing well - Starting Strength tracking\r\n\r\n\r\n\r\n## License\r\n\r\nFree to use, modify, and distribute as you see fit.\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A comprehensive terminal-based workout tracking application for Mark Rippetoe's Starting Strength program",
    "version": "1.0.0",
    "project_urls": {
        "Bug Tracker": "https://github.com/yourusername/strength-tracker/issues",
        "Documentation": "https://github.com/yourusername/strength-tracker#readme",
        "Homepage": "https://github.com/yourusername/strength-tracker",
        "Repository": "https://github.com/yourusername/strength-tracker.git"
    },
    "split_keywords": [
        "workout",
        " strength",
        " fitness",
        " tracking",
        " starting-strength",
        " rippetoe"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "55dd693f35c266f3283246d89a6611ec59472fc66fe08d16bd194c8a0b67ca0c",
                "md5": "6386f997470844aa43c368d58d998cb4",
                "sha256": "2c85ceaf902f40a86e47c49dd293db0127f1caa3929199df6ed691d1f0649a31"
            },
            "downloads": -1,
            "filename": "strength_tracker-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6386f997470844aa43c368d58d998cb4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 11003,
            "upload_time": "2025-08-07T10:29:14",
            "upload_time_iso_8601": "2025-08-07T10:29:14.396206Z",
            "url": "https://files.pythonhosted.org/packages/55/dd/693f35c266f3283246d89a6611ec59472fc66fe08d16bd194c8a0b67ca0c/strength_tracker-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "7d543ebc6539bce9df95fc6308e3e30f789082cf42ad37bcdb5654a97d27601a",
                "md5": "7aef1b728c38ca738731209d7149a404",
                "sha256": "9de1cc27af6da5bf9e542b78a36d54bda72be98754192c34c494d56562976792"
            },
            "downloads": -1,
            "filename": "strength_tracker-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "7aef1b728c38ca738731209d7149a404",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 15941,
            "upload_time": "2025-08-07T10:29:15",
            "upload_time_iso_8601": "2025-08-07T10:29:15.465722Z",
            "url": "https://files.pythonhosted.org/packages/7d/54/3ebc6539bce9df95fc6308e3e30f789082cf42ad37bcdb5654a97d27601a/strength_tracker-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-07 10:29:15",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "yourusername",
    "github_project": "strength-tracker",
    "github_not_found": true,
    "lcname": "strength-tracker"
}
        
Elapsed time: 2.41224s