@@ -217,24 +217,38 @@ python main.py
217217```
218218framelab/
219219├── main.py # Application entry point
220+ ├── install.sh # Installation script for macOS/Linux
221+ ├── install.bat # Installation script for Windows
220222├── camera/
221223│ ├── camera.py # Camera class with capture, recording, pose
222224│ └── detection.py # Camera detection utilities
223225├── pose/
224226│ ├── estimator.py # MediaPipe pose estimation
225- │ └── renderer.py # Angle calculation and visualization
227+ │ ├── renderer.py # Angle calculation and visualization
228+ │ └── pose_editor.py # Manual pose adjustment and landmark editing
226229├── gui/
227230│ ├── layout.py # Main window layout and camera grid
228231│ ├── quadrants.py # Quadrant management
229232│ ├── startup.py # Startup workflow (athlete/bike selection)
230- │ ├── dialogs.py # File dialogs
231- │ ├── pose_editor.py # Manual pose adjustment
233+ │ ├── dialogs.py # File dialogs and video loading
234+ │ ├── preferences_dialog.py # Application preferences dialog
235+ │ ├── shortcuts_dialog.py # Keyboard shortcuts configuration
232236│ └── state.py # Global application state
233237├── athlete/
234238│ └── manager.py # Athlete/bike directory management
235239├── utils/
236240│ ├── logger.py # Logging configuration
237- │ └── settings.py # Settings persistence
241+ │ └── settings.py # Settings persistence (JSON)
242+ ├── tests/
243+ │ ├── run_tests.py # Test runner script
244+ │ ├── test_camera.py # Camera module tests
245+ │ ├── test_pose_estimator.py# Pose estimation tests
246+ │ ├── test_pose_renderer.py # Renderer tests
247+ │ ├── test_settings.py # Settings persistence tests
248+ │ └── README.md # Test documentation
249+ ├── .github/
250+ │ └── workflows/
251+ │ └── tests.yml # GitHub Actions CI/CD pipeline
238252└── requirements.txt # Python dependencies
239253```
240254
0 commit comments