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.
12 KiB
12 KiB
Version History
📖 Consolidated Documentation: This document combines multiple documentation files for better organization and easier navigation.
Table of Contents
Overview
Version history and release notes (preserved as-is)
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.
Originally from: CHANGELOG.md
📖 Documentation Navigation
- User Guide - Features, shortcuts, and usage
- Developer Guide - Development and testing
- API Reference - Technical documentation
- Changelog - Version history
- Documentation Index - Complete navigation
This document was generated by the documentation consolidation system. Last updated: 2025-08-05 14:53:36