A detailed study/time tracker with various data visualizations
A desktop application designed to help track study sessions and explore correlations between focus habits and personal wellness data, such as sleep quality and duration.
This project was conceived as a tool to gain better insights into personal productivity. It allows a user to time their study sessions, tag them by subject, and view detailed analytics on their work habits. Furthermore, it integrates health data imported from Garmin Connect to visualize potential connections between sleep quality and study performance.
This project was developed in collaboration with Google's AI, Gemini. The concept, feature requirements, and debugging direction were provided by Aiden Hogan. The Python code, including the application structure, UI layout, data processing, and plotting logic, was generated by Gemini. This README serves to maintain transparency about the AI-assisted development process.
Session Timer: A simple stopwatch to time study sessions with subject tagging. Manual Entry: Manually add or edit past study sessions with notes. Dashboard: An at-a-glance view of today's focus, weekly totals, lifetime stats, and study streaks. Productivity Calendar: A heatmap-style calendar that visualizes which days you studied and the subjects covered (color display). In-Depth Analytics: * Breakdown of time spent per subject (Pie Chart). * Productivity trends by day, hour, and day of the week (Bar Charts). Health Correlation: * Import sleep and wellness data from a Garmin Connect CSV export, or manually track and enter sleep duration. * Visualize relationships between study time and metrics like Sleep Score, Sleep Duration, and various Garmin data. Data Management: * Create and manage custom tags with unique colors. * Ability to export all session and health data to CSV files for further analysis.
Python CustomTkinter: For the graphical user interface (GUI). Pandas: For data manipulation and analysis. Matplotlib: For creating charts and plots. SQLite: For the local database. PyInstaller: For packaging the application into an executable.
The easiest way to use the application is to download the Focus_Tracker.exe file from the latest Releases page on this repository. No installation is needed.
If you wish to run the project from its source code:
- Clone the repository:
git clone https://github.com/AidenHogan/Study-Tracker.git cd Study-Tracker - Create and activate a virtual environment:
# Create the environment python -m venv .venv # Activate on Windows .venv\Scripts\activate # Activate on macOS/Linux NOTE: Only Windows is currently supported source .venv/bin/activate
- Install the required packages:
pip install -r requirements.txt
- Run the application:
python main_app.py
- Aiden Hogan - Concept, Direction, and Debugging
Notes and next steps before an official release:
- OAuth1 runtime: To populate hydration and intensity automatically, sign in via the app menu and then run the Garmin sync. Accounts with 2FA may require a browser-based flow. If a CLI helper turns out to be preferable, see the
core/garmin_downloadermodule. - Additional persistence: The codebase prepares for storing more Garmin Daily* stats; potentially add the dedicated
garmin_daily_statstable (or extra columns). - Tests & docs: Unit tests and README sections for migrations and importer behavior will be added in a follow-up commit.