Files
thechart/CHANGELOG.md
William Valentin a521ed6e9a
Some checks failed
Build and Push Docker Image / build-and-push (push) Has been cancelled
Add quick test runner and enhance run_tests script
- 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.
2025-08-05 15:09:13 -07:00

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.md with complete feature documentation
  • Added: Detailed docs/DEVELOPMENT.md with testing and development guide
  • Updated: Streamlined README.md with 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 (ToolsManage 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.py with 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.yaml with 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


This document was generated by the documentation consolidation system. Last updated: 2025-08-05 14:53:36