mirror of
https://github.com/sstent/aicyclingcoach-go.git
synced 2025-12-05 23:51:37 +00:00
sync
This commit is contained in:
40
ASCII_Chart_Visualization_Details.md
Normal file
40
ASCII_Chart_Visualization_Details.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# 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
|
||||
```mermaid
|
||||
graph TD
|
||||
A[Activity Data] --> B[Downsample Data]
|
||||
B --> C[Normalize Values]
|
||||
C --> D[Render Chart]
|
||||
D --> E[Activity Detail View]
|
||||
```
|
||||
|
||||
## Key Components
|
||||
1. **Data Processing**:
|
||||
- Downsampling for large datasets
|
||||
- Normalization to terminal height
|
||||
- Handling missing data points
|
||||
|
||||
2. **Rendering Engine**:
|
||||
- Unicode block characters (▁▂▃▄▅▆▇█)
|
||||
- Lipgloss for styling
|
||||
- Responsive to terminal resize
|
||||
|
||||
3. **Integration**:
|
||||
- Activity detail screen
|
||||
- Performance metrics display
|
||||
|
||||
## Relevant Files
|
||||
- [`internal/tui/components/chart.go`](fitness-tui/internal/tui/components/chart.go) - Chart rendering logic
|
||||
- [`internal/types/downsample.go`](fitness-tui/internal/types/downsample.go) - Data downsampling
|
||||
- [`internal/tui/screens/activity_detail.go`](fitness-tui/internal/tui/screens/activity_detail.go) - Integration point
|
||||
|
||||
## Exit Criteria
|
||||
1. Charts render correctly for HR, power, and elevation data
|
||||
2. Handles terminal resize events
|
||||
3. Supports datasets up to 10,000 points
|
||||
4. Unit tests covering 90% of chart logic
|
||||
5. Integrated into activity detail view
|
||||
Reference in New Issue
Block a user