mirror of
https://github.com/sstent/aicyclingcoach-go.git
synced 2025-12-05 23:51:37 +00:00
1.4 KiB
1.4 KiB
ASCII Chart Visualization - Design Details
Objective
Implement terminal-based charts for activity metrics (HR, power, elevation) using Unicode block characters. Charts should be responsive to terminal size and efficiently render large datasets.
High-Level Design
graph TD
A[Activity Data] --> B[Downsample Data]
B --> C[Normalize Values]
C --> D[Render Chart]
D --> E[Activity Detail View]
Key Components
-
Data Processing:
- Downsampling for large datasets
- Normalization to terminal height
- Handling missing data points
-
Rendering Engine:
- Unicode block characters (▁▂▃▄▅▆▇█)
- Lipgloss for styling
- Responsive to terminal resize
-
Integration:
- Activity detail screen
- Performance metrics display
Relevant Files
internal/tui/components/chart.go- Chart rendering logicinternal/types/downsample.go- Data downsamplinginternal/tui/screens/activity_detail.go- Integration point
Exit Criteria
- Charts render correctly for HR, power, and elevation data
- Handles terminal resize events
- Supports datasets up to 10,000 points
- Unit tests covering 90% of chart logic
- Integrated into activity detail view