You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -19,7 +19,7 @@ To install, follow the instructions for your platform found here:
19
19
20
20
* Add integrations with professional applications
21
21
* Detach the GIL for windows version
22
-
*Add a better way to filter out non-GUI apps on macOS
22
+
*Find a better way to filter out non-GUI apps
23
23
* Full linux support with packages
24
24
25
25
NOTE: GIL is detached for the macOS build; use Python 3.13.7t
@@ -52,71 +52,6 @@ AppUsageGUI is a cross-platform desktop application built with Python and Tkinte
52
52
53
53
The application follows a Model-View-Controller (MVC) architecture with separate logic and GUI components.
54
54
55
-
## Project and Session Structure
56
-
57
-
AppUsageGUI organizes your time tracking data using a hierarchical project-based structure. This allows you to group related sessions together and manage your time tracking more effectively.
58
-
59
-
### Data Organization
60
-
61
-
```
62
-
AppUsageGUI/
63
-
├── Sessions/ # Standalone sessions (No Project)
64
-
│ ├── session1.dat
65
-
│ ├── session1.hash
66
-
│ ├── session2.dat
67
-
│ └── session2.hash
68
-
├── Projects/ # Project-organized sessions
69
-
│ ├── Web Development/ # Custom project
70
-
│ │ ├── frontend_work.dat
71
-
│ │ ├── frontend_work.hash
72
-
│ │ ├── backend_api.dat
73
-
│ │ └── backend_api.hash
74
-
│ ├── Design Projects/ # Another custom project
75
-
│ │ ├── logo_design.dat
76
-
│ │ ├── logo_design.hash
77
-
│ │ └── ui_mockup.dat
78
-
│ └── projects_metadata.json # Project information and metadata
-**Projects**: Top-level containers that group related sessions together, stored in the `Projects/` directory
@@ -126,23 +61,6 @@ graph TD
126
61
-**Session Files**: Each session consists of a `.dat` file (data) and `.hash` file (integrity check)
127
62
-**Metadata**: Project information is stored in `projects_metadata.json` including creation dates and session counts
128
63
129
-
### Session Data Structure
130
-
131
-
Each session file contains comprehensive tracking information:
132
-
133
-
```python
134
-
{
135
-
'app_name': 'Visual Studio Code', # Application being tracked
136
-
'time_spent': 7200.5, # Total time in seconds
137
-
'session_version': '2.0.0', # App version when created
138
-
'config': {...}, # Tracking configuration
139
-
'time_captures': [...], # Detailed time capture data
140
-
'project_name': 'Web Development', # Project this session belongs to
141
-
'created_date': '2024-01-15T10:30:00', # When session was created
142
-
'last_modified': '2024-01-15T12:30:00'# Last modification time
143
-
}
144
-
```
145
-
146
64
## Features
147
65
148
66
-**Project Management**: Organize sessions into projects for organization and management
@@ -177,57 +95,3 @@ The application now uses a streamlined workflow where users select their project
177
95
### Continuing Existing Sessions
178
96
-**Main Menu** → "Continue previous session" → Navigate through projects to find and resume sessions
179
97
- Sessions can be continued across application restarts with full state preservation
180
-
181
-
## Code Structure
182
-
183
-
### Core Application Files
184
-
185
-
-**`src/main.py`** - Application entry point that initializes the Tkinter root window, applies dark mode theming, sets up the application icon, and launches the splash screen
186
-
-**`src/_version.py`** - Contains the application version number
187
-
-**`src/_path.py`** - Handles resource path resolution for bundled applications
188
-
189
-
### Core Logic (`src/core/`)
190
-
191
-
#### Main Controllers
192
-
-**`gui_root.py`** - Main GUI controller that manages the application's window system, initializes all screens, and handles navigation between different windows
193
-
-**`logic_root.py`** - Central logic controller that coordinates all tracking components (AppTracker, TimeTracker, FileHandler, ProjectHandler, MouseTracker)
194
-
195
-
#### Logic Components (`src/core/logic/`)
196
-
-**`app_tracker.py`** - Monitors running processes using psutil, filters GUI applications from background processes, and maintains lists of available applications for tracking
197
-
-**`time_tracker.py`** - Implements precise time tracking with pause/resume functionality, runs in a separate thread for accuracy, and captures timing data for analysis
198
-
-**`file_handler.py`** - Manages session data persistence, handles file I/O operations with pickle serialization, and implements data integrity checking using hash verification
199
-
-**`project_handler.py`** - Manages project creation, deletion, and organization, handles project metadata and session counts
200
-
-**`user_trackers.py`** - Contains additional tracking modules like MouseTracker for user activity monitoring and ResolveProjectTracker for specific application integration
201
-
202
-
#### User Interface (`src/core/screens/`)
203
-
-**`main_window.py`** - Main menu screen providing options to start new sessions, manage projects, continue previous sessions, or configure settings
204
-
-**`projects_window.py`** - Project management interface for viewing, creating, and deleting projects with session counts and total time
205
-
-**`create_project_window.py`** - Project creation dialog with name validation and project setup
206
-
-**`project_sessions_window.py`** - Project-specific session management interface for viewing and managing sessions within a project
207
-
-**`create_session_window.py`** - Session creation dialog with project selection, name validation, and session setup
208
-
-**`select_app_window.py`** - Application selection interface with search functionality and real-time app list updates
209
-
-**`tracker_window.py`** - Active tracking display showing elapsed time, pause/resume controls, and stop functionality
210
-
-**`sessions_window.py`** - Global session management interface for loading, analyzing, and deleting saved sessions across all projects
211
-
-**`save_window.py`** - Session saving interface with data confirmation
212
-
-**`session_total_window.py`** - Session summary display showing total tracked time and statistics
213
-
-**`tracker_settings_window.py`** - Configuration interface for custom tracking rules and application filtering
214
-
-**`splash_screen.py`** - Application startup splash screen with loading animation
215
-
216
-
#### Utilities (`src/core/utils/`)
217
-
-**`file_utils.py`** - File system operations, directory management, session file handling, project directory management, and data integrity functions
218
-
-**`time_utils.py`** - Time formatting utilities for displaying elapsed time in human-readable format
219
-
-**`logic_utils.py`** - Threading utilities and decorators for running functions in separate threads
220
-
-**`tk_utils.py`** - Tkinter-specific utilities including window centering and dark mode detection
221
-
222
-
### Resources (`src/core/resources/`)
223
-
-**`icon.ico`** / **`icon.icns`** - Application icons for Windows and macOS respectively
224
-
-**`icon-resources/`** - Source files for application icons
225
-
226
-
### Development and Build Files
227
-
-**`setup.py`** - Python package configuration and installation setup
228
-
-**`build.py`** - Build script for creating distributable packages
229
-
-**`requirements.txt`** - Python dependencies list
230
-
-**`pytest.ini`** - Testing configuration
231
-
-**`tests/`** - Unit tests for application components including project management and session creation workflows
0 commit comments