Some checks failed
Build and Push Docker Image / build-and-push (push) Has been cancelled
8.2 KiB
8.2 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.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.