Some checks failed
Build and Push Docker Image / build-and-push (push) Has been cancelled
- Introduced `quick_test.py` for running specific test categories (unit, integration, theme, all). - Updated `run_tests.py` to improve test execution and reporting, including coverage. - Removed outdated test scripts for keyboard shortcuts, menu theming, note saving, and entry updating. - Added new test script `test_theme_changing.py` to verify theme changing functionality. - Consolidated integration tests into `test_integration.py` for comprehensive testing of TheChart application. - Updated theme manager to ensure color retrieval works correctly. - Modified test constants to import from the correct module path.
11 KiB
11 KiB
Changelog
All notable changes to TheChart project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.9.5] - 2025-08-05
🎨 Major UI/UX Overhaul
- Added: Professional theme system with ttkthemes integration
- Added: 8 curated themes (Arc, Equilux, Adapta, Yaru, Ubuntu, Plastik, Breeze, Elegance)
- Added: Dynamic theme switching without restart
- Added: Theme persistence between sessions
- Added: Comprehensive settings window with tabbed interface
- Added: Smart tooltip system with context-sensitive help
- Improved: Table selection highlighting and alternating row colors
- Improved: Modern styling for all UI components (buttons, frames, forms)
- Improved: Professional card-style layouts and enhanced spacing
⚙️ Settings and Configuration System
- Added: Advanced settings window (accessible via F2)
- Added: Theme selection with live preview
- Added: UI preferences and customization options
- Added: About dialog with detailed application information
- Added: Settings persistence across application restarts
💡 Enhanced User Experience
- Added: Intelligent tooltips for all interactive elements
- Added: Specialized help for pathology scales and medicine options
- Added: Non-intrusive tooltip timing (500-800ms delay)
- Added: Quick theme switching via menu bar
- Improved: Visual hierarchy with better typography and spacing
- Improved: Professional color schemes across all themes
🏗️ Technical Architecture Improvements
- Added: Modular theme manager with dependency injection
- Added: Tooltip management system
- Added: Enhanced UI manager with theme integration
- Improved: Code organization with separate concerns
- Improved: Error handling with graceful theme fallbacks
[1.7.0] - 2025-08-05
⌨️ Keyboard Shortcuts System
- Added: Comprehensive keyboard shortcuts for improved productivity
- Added: File operations shortcuts (Ctrl+S, Ctrl+Q, Ctrl+E)
- Added: Data management shortcuts (Ctrl+N, Ctrl+R, F5)
- Added: Window management shortcuts (Ctrl+M, Ctrl+P)
- Added: Table operation shortcuts (Delete, Escape)
- Added: Help system shortcut (F1)
- Added: Menu integration showing shortcuts next to menu items
- Added: Button labels updated to show primary shortcuts
- Added: In-app help dialog accessible via F1
- Added: Status bar feedback for all keyboard operations
- Improved: Button text shows shortcuts (e.g., "Add Entry (Ctrl+S)")
- Improved: Case-insensitive shortcuts (Ctrl+S and Ctrl+Shift+S both work)
Keyboard Shortcuts Added:
- Ctrl+S: Save/Add new entry
- Ctrl+Q: Quit application (with confirmation)
- Ctrl+E: Export data
- Ctrl+N: Clear entries
- Ctrl+R / F5: Refresh data
- Ctrl+M: Manage medicines
- Ctrl+P: Manage pathologies
- Delete: Delete selected entry (with confirmation)
- Escape: Clear selection
- F1: Show keyboard shortcuts help
📚 Documentation Updates
- Updated: FEATURES.md with keyboard shortcuts section
- Added: KEYBOARD_SHORTCUTS.md with comprehensive shortcut reference
- Updated: In-app help system with shortcut information
- Updated: About dialog with keyboard shortcut mention
[1.6.1] - 2025-07-31
📚 Documentation Overhaul
- BREAKING: Consolidated scattered documentation into organized structure
- Added: Comprehensive
docs/FEATURES.mdwith complete feature documentation - Added: Detailed
docs/DEVELOPMENT.mdwith testing and development guide - Updated: Streamlined
README.mdwith quick-start focus and navigation - Removed: 10 redundant/outdated markdown files
- Improved: Clear separation between user and developer documentation
🏗️ Documentation Structure
docs/
├── FEATURES.md # Complete feature guide (new)
├── DEVELOPMENT.md # Development & testing guide (new)
└── CHANGELOG.md # This changelog (new)
README.md # Streamlined quick-start guide (updated)
[1.3.3] - Previous Releases
🏥 Modular Medicine System
- Added: Dynamic medicine management system
- Added: JSON-based medicine configuration (
medicines.json) - Added: Medicine management UI (
Tools→Manage Medicines...) - Added: Configurable medicine properties (colors, doses, names)
- Added: Automatic UI updates when medicines change
- Added: Backward compatibility with existing data
💊 Advanced Dose Tracking System
- Added: Precise timestamp recording for medicine doses
- Added: Multiple daily dose support for same medicine
- Added: Comprehensive dose tracking interface in edit windows
- Added: Quick-dose buttons for common amounts
- Added: Real-time dose display and feedback
- Added: Historical dose data persistence in CSV
- Improved: Dose format parsing with robust error handling
Punch Button Redesign
- Moved: Dose tracking from main input to edit window
- Added: Individual dose entry fields per medicine
- Added: "Take [Medicine]" buttons with immediate recording
- Added: Editable dose display areas with history
- Improved: User experience with centralized dose management
📊 Enhanced Graph Visualization
- Added: Medicine dose bar charts with distinct colors
- Added: Interactive toggle controls for symptoms and medicines
- Added: Enhanced legend with multi-column layout
- Added: Average dosage calculations and displays
- Added: Professional styling with transparency and shadows
- Improved: Graph layout with dynamic positioning
Medicine Dose Plotting
- Added: Visual representation of daily medication intake
- Added: Scaled dose display (mg/10) for chart compatibility
- Added: Color-coded bars for each medicine
- Added: Semi-transparent rendering to preserve symptom visibility
- Fixed: Dose calculation logic for complex timestamp formats
Legend Enhancements
- Added: Multi-column legend layout (2 columns)
- Added: Average dosage information per medicine
- Added: Tracking status for medicines without current doses
- Added: Frame, shadow, and transparency effects
- Improved: Space utilization and readability
🧪 Comprehensive Testing Framework
- Added: Professional testing infrastructure with pytest
- Added: 93% code coverage across 112 tests
- Added: Coverage reporting (HTML, XML, terminal)
- Added: Pre-commit testing hooks
- Added: Comprehensive dose calculation testing
- Added: UI component testing with mocking
- Added: Medicine plotting and legend testing
Test Infrastructure
- Added:
tests/conftest.pywith shared fixtures - Added: Sample data generators for realistic testing
- Added: Mock loggers and temporary file management
- Added: Environment variable mocking
Pre-commit Testing
- Added: Automated testing before commits
- Added: Core functionality validation (3 essential tests)
- Added: Commit blocking on test failures
- Configured:
.pre-commit-config.yamlwith testing hooks
🏗️ Technical Architecture Improvements
- Added: Modular component architecture
- Added: MedicineManager and PathologyManager classes
- Added: Dynamic UI generation based on configuration
- Improved: Separation of concerns across modules
- Enhanced: Error handling and logging throughout
📈 Data Management Enhancements
- Added: Automatic data migration and backup system
- Added: Dynamic CSV column management
- Added: Robust dose string parsing
- Improved: Data validation and error handling
- Enhanced: Backward compatibility preservation
🔧 Development Tools & Workflow
- Added: uv integration for fast package management
- Added: Comprehensive Makefile with development commands
- Added: Docker support with multi-platform builds
- Added: Pre-commit hooks for code quality
- Added: Ruff for fast Python formatting and linting
- Improved: Virtual environment management
🚀 Deployment & Distribution
- Added: PyInstaller integration for standalone executables
- Added: Linux desktop integration
- Added: Automatic file installation and desktop entries
- Added: Docker containerization support
- Improved: Build and deployment automation
Technical Details
Dependencies
- Runtime: Python 3.13+, matplotlib, pandas, tkinter, colorlog
- Development: pytest, pytest-cov, ruff, pre-commit, pyinstaller
- Package Management: uv (Rust-based, 10-100x faster than pip/Poetry)
Architecture
- Frontend: Tkinter-based GUI with dynamic component generation
- Backend: Pandas for data manipulation, Matplotlib for visualization
- Storage: CSV-based with JSON configuration files
- Testing: pytest with comprehensive mocking and coverage
File Structure
src/ # Main application code
├── main.py # Application entry point
├── ui_manager.py # User interface management
├── data_manager.py # CSV operations and data persistence
├── graph_manager.py # Visualization and plotting
├── medicine_manager.py # Medicine system management
└── pathology_manager.py # Symptom tracking
tests/ # Comprehensive test suite (112 tests, 93% coverage)
docs/ # Organized documentation
├── FEATURES.md # Complete feature documentation
├── DEVELOPMENT.md # Development and testing guide
└── CHANGELOG.md # This changelog
Configuration Files:
├── medicines.json # Medicine definitions (auto-generated)
├── pathologies.json # Symptom categories (auto-generated)
├── pyproject.toml # Project configuration
└── uv.lock # Dependency lock file
Migration Notes
From Previous Versions
- Data Compatibility: All existing CSV data continues to work
- Automatic Migration: Data structure updates handled automatically
- Backup Creation: Automatic backups before major changes
- No Data Loss: Existing functionality preserved during updates
Configuration Migration
- Medicine System: Hard-coded medicines converted to JSON configuration
- UI Updates: Interface automatically adapts to new medicine definitions
- Graph Integration: Visualization system updated for dynamic medicines
Future Roadmap
Planned Features (v2.0)
- Mobile App: Companion mobile application for dose tracking
- Cloud Sync: Multi-device data synchronization
- Advanced Analytics: Machine learning-based trend analysis
- Reminder System: Intelligent medication reminders
- Doctor Integration: Healthcare provider report generation
Platform Expansion
- macOS Support: Native macOS application
- Windows Support: Windows executable and installer
- Web Interface: Browser-based version for universal access
API Development
- REST API: External system integration
- Plugin Architecture: Third-party extension support
- Data Export: Multiple format support (JSON, XML, etc.)
Contributing
This project follows semantic versioning and maintains comprehensive documentation. For development guidelines, see docs/DEVELOPMENT.md. For feature information, see docs/FEATURES.md.