# 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.