50 lines
2.0 KiB
Markdown
50 lines
2.0 KiB
Markdown
# Development Plan: Exercise Diary
|
|
|
|
## Overview
|
|
A desktop GUI application for Linux (CachyOS) to track workout sessions, exercises, and body metrics (weight, etc.).
|
|
|
|
## Technology Stack
|
|
* **Language:** Python 3
|
|
* **GUI:** `customtkinter` (Modern, clean, supports dark mode - similar to your Video Converter project).
|
|
* **Database:** `SQLite` (Lightweight, local file storage, no server setup required).
|
|
* **Plotting:** `matplotlib` (For visualizing progress/weight trends).
|
|
|
|
## Core Features (MVP)
|
|
1. **Daily Health Log:**
|
|
* **Sleep:** Duration (hours) and Quality (1-10 scale).
|
|
* **Body:** Weight and Waist Circumference.
|
|
* **Wellness:** Mood/Energy levels.
|
|
2. **Calisthenics Tracker:**
|
|
* Focus on bodyweight exercises (e.g., Pushups, Squats, Planks).
|
|
* Track Reps, Time (for statics like Planks), and Difficulty/Variation (e.g., "Knee Pushups" vs "Standard").
|
|
* RPE (Rate of Perceived Exertion) to track effort as strength increases.
|
|
3. **Motivation & Gamification:**
|
|
* **Streaks:** Visual indicator of consistency.
|
|
* **Progress Graphs:** Weight vs. Waist, Sleep Quality vs. Mood.
|
|
* **"Level 0 to Hero":** Simple milestones to acknowledge starting from a sedentary lifestyle.
|
|
4. **Exercise Library:**
|
|
* Pre-loaded with basic calisthenics moves.
|
|
* Ability to add custom exercises.
|
|
|
|
## Proposed File Structure
|
|
```
|
|
ExerciseDiary/
|
|
├── main.py # Entry point
|
|
├── database.py # SQLite handling (Daily logs + Workouts)
|
|
├── models.py # Data classes
|
|
├── assets/ # Icons or motivational images
|
|
├── ui/
|
|
│ ├── app.py # Main GUI window
|
|
│ ├── daily_log.py # Quick entry for Sleep/Weight/Waist
|
|
│ ├── workout.py # Calisthenics logger
|
|
│ └── stats.py # Motivation & Graphs
|
|
├── requirements.txt # Dependencies
|
|
└── README.md
|
|
```
|
|
|
|
## Next Steps
|
|
1. Initialize the project environment (virtualenv).
|
|
2. Install `customtkinter` and `matplotlib`.
|
|
3. Set up the database schema.
|
|
4. Build the basic GUI shell.
|