My Data Dashboard

Live Fitness Data Pipeline

Real-time insights from my fitness journey. This dashboard showcases data engineering, API integration, and interactive visualization.

Data Pipeline Control

Daily Data Sync

Manually trigger the daily WHOOP data collection pipeline. This connects to the same cron job that runs automatically at 3 PM daily.Real-time Token Refresh • Multi-user Data Processing • Error HandlingSkills: API Integration, Cron Jobs, Data Pipeline Engineering, Error Recovery

Am I consistent with my workouts?

My Strain Journey

The 10 Strain Challenge: Every month, I set myself a goal to maintain an average strain of at least 10. But this isn't just about numbers—it's about keeping my body in motion and staying committed to daily movement.

A strain of 10 represents that sweet spot where I'm pushing my body enough to see progress, but not so hard that I burn out. It means I'm consistently challenging myself through workouts, runs, and active recovery. The yellow dotted line shows this target—my North Star for staying active.

Green dots mark the months I hit my goal, while red dots remind me when life got in the way. The heatmap below reveals the daily story—each square representing a day of effort, consistency, and the pursuit of movement.

Skills Demonstrated: React Visualization, Real-time Data Processing, SQL Aggregation, Goal Tracking

My Strain Journey This Year

A month-by-month view of my fitness activities, with brighter green squares representing higher strain days (maximum: 21).

238
Active Days
10.5
Avg Strain
20.7
Peak Strain
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
Mon
Wed
Fri
Less
0: No Activity
1-2: Recovery Day
3-5: Rest Day
6-7: Light Activity
8-9: Moderate Activity
10-11: Good Training
12-13: Solid Training
14-15: High Training
16-17: Very High Training
18-19: Elite Performance
20-21: Exceptional Performance
More
Hover over squares for strain level details (Maximum: 21)

Weekly Average Strain: Chasing the 10 Goal ⚡

Each dot represents my weekly average strain. Consistency above 10 means optimal fitness growth.

Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
How close am I to conquering Astoria?

The Astoria Conquest

Live geospatial goal tracking my mission to run every street in Astoria, Queens. Interactive map with real-time progress updates.Astoria Conquest: 78% Complete • 45.2 miles remainingSkills: Geospatial Data Processing, Mapbox/Leaflet.js, Advanced API Integration

Strain vs. Recovery: The Core Performance Loop

Each dot represents one day, showing how training intensity impacts recovery capacity. The trend line reveals the fundamental relationship between effort and restoration.

230
Data Points
10.6
Avg Strain
60%
Avg Recovery
-29%
Correlation
051015200%25%50%75%100%Date: 9/15/2025 Strain: 7.9 Recovery: 69%Date: 9/14/2025 Strain: 8.4 Recovery: 80%Date: 9/13/2025 Strain: 6.8 Recovery: 51%Date: 9/12/2025 Strain: 14.0 Recovery: 53%Date: 9/11/2025 Strain: 6.2 Recovery: 32%Date: 9/10/2025 Strain: 9.0 Recovery: 56%Date: 9/9/2025 Strain: 6.9 Recovery: 63%Date: 9/8/2025 Strain: 14.2 Recovery: 60%Date: 9/7/2025 Strain: 6.4 Recovery: 90%Date: 9/6/2025 Strain: 9.3 Recovery: 40%Date: 9/5/2025 Strain: 13.2 Recovery: 32%Date: 9/4/2025 Strain: 7.6 Recovery: 67%Date: 9/3/2025 Strain: 12.0 Recovery: 78%Date: 9/2/2025 Strain: 11.1 Recovery: 46%Date: 9/1/2025 Strain: 12.8 Recovery: 52%Date: 8/31/2025 Strain: 9.7 Recovery: 65%Date: 8/30/2025 Strain: 5.3 Recovery: 85%Date: 8/29/2025 Strain: 6.7 Recovery: 82%Date: 8/28/2025 Strain: 7.8 Recovery: 51%Date: 8/27/2025 Strain: 12.8 Recovery: 74%Date: 8/26/2025 Strain: 11.5 Recovery: 66%Date: 8/25/2025 Strain: 8.0 Recovery: 93%Date: 8/24/2025 Strain: 16.7 Recovery: 44%Date: 8/23/2025 Strain: 10.4 Recovery: 34%Date: 8/22/2025 Strain: 12.3 Recovery: 44%Date: 8/21/2025 Strain: 9.2 Recovery: 78%Date: 8/20/2025 Strain: 6.9 Recovery: 77%Date: 8/19/2025 Strain: 11.8 Recovery: 69%Date: 8/18/2025 Strain: 6.7 Recovery: 76%Date: 8/17/2025 Strain: 6.4 Recovery: 68%Date: 8/16/2025 Strain: 20.7 Recovery: 22%Date: 8/15/2025 Strain: 11.8 Recovery: 52%Date: 8/14/2025 Strain: 9.1 Recovery: 94%Date: 8/13/2025 Strain: 13.3 Recovery: 75%Date: 8/12/2025 Strain: 12.0 Recovery: 65%Date: 8/11/2025 Strain: 11.3 Recovery: 60%Date: 8/10/2025 Strain: 14.7 Recovery: 58%Date: 8/9/2025 Strain: 8.4 Recovery: 48%Date: 8/8/2025 Strain: 16.1 Recovery: 49%Date: 8/4/2025 Strain: 8.1 Recovery: 91%Date: 8/3/2025 Strain: 17.5 Recovery: 21%Date: 8/2/2025 Strain: 12.3 Recovery: 42%Date: 8/1/2025 Strain: 8.5 Recovery: 59%Date: 7/31/2025 Strain: 12.5 Recovery: 63%Date: 7/28/2025 Strain: 10.4 Recovery: 96%Date: 7/27/2025 Strain: 7.1 Recovery: 84%Date: 7/26/2025 Strain: 7.4 Recovery: 95%Date: 7/25/2025 Strain: 14.2 Recovery: 27%Date: 7/24/2025 Strain: 15.4 Recovery: 29%Date: 7/23/2025 Strain: 7.8 Recovery: 74%Date: 7/22/2025 Strain: 9.3 Recovery: 70%Date: 7/21/2025 Strain: 5.7 Recovery: 92%Date: 7/20/2025 Strain: 18.5 Recovery: 44%Date: 7/19/2025 Strain: 12.9 Recovery: 60%Date: 7/18/2025 Strain: 10.3 Recovery: 21%Date: 7/17/2025 Strain: 6.2 Recovery: 68%Date: 7/16/2025 Strain: 11.9 Recovery: 48%Date: 7/15/2025 Strain: 13.5 Recovery: 49%Date: 7/14/2025 Strain: 7.6 Recovery: 50%Date: 7/13/2025 Strain: 7.4 Recovery: 80%Date: 7/12/2025 Strain: 11.4 Recovery: 80%Date: 7/11/2025 Strain: 13.7 Recovery: 66%Date: 7/8/2025 Strain: 12.4 Recovery: 52%Date: 7/7/2025 Strain: 7.8 Recovery: 63%Date: 7/6/2025 Strain: 9.1 Recovery: 78%Date: 7/5/2025 Strain: 13.2 Recovery: 30%Date: 7/4/2025 Strain: 15.8 Recovery: 53%Date: 7/3/2025 Strain: 8.0 Recovery: 76%Date: 7/2/2025 Strain: 11.4 Recovery: 38%Date: 7/1/2025 Strain: 12.9 Recovery: 24%Date: 6/30/2025 Strain: 5.1 Recovery: 49%Date: 6/29/2025 Strain: 10.4 Recovery: 74%Date: 6/28/2025 Strain: 13.3 Recovery: 58%Date: 6/27/2025 Strain: 8.8 Recovery: 74%Date: 6/26/2025 Strain: 9.2 Recovery: 81%Date: 6/25/2025 Strain: 9.4 Recovery: 70%Date: 6/24/2025 Strain: 7.6 Recovery: 74%Date: 6/23/2025 Strain: 7.4 Recovery: 44%Date: 6/22/2025 Strain: 12.3 Recovery: 44%Date: 6/21/2025 Strain: 14.8 Recovery: 29%Date: 6/20/2025 Strain: 10.4 Recovery: 1%Date: 6/19/2025 Strain: 4.4 Recovery: 71%Date: 6/18/2025 Strain: 8.7 Recovery: 42%Date: 6/17/2025 Strain: 8.3 Recovery: 61%Date: 6/16/2025 Strain: 5.6 Recovery: 55%Date: 6/15/2025 Strain: 9.9 Recovery: 73%Date: 6/14/2025 Strain: 7.5 Recovery: 82%Date: 6/13/2025 Strain: 8.5 Recovery: 62%Date: 6/12/2025 Strain: 4.2 Recovery: 20%Date: 6/11/2025 Strain: 10.4 Recovery: 44%Date: 6/10/2025 Strain: 7.1 Recovery: 58%Date: 6/9/2025 Strain: 6.4 Recovery: 49%Date: 6/8/2025 Strain: 9.0 Recovery: 48%Date: 6/7/2025 Strain: 7.5 Recovery: 70%Date: 6/6/2025 Strain: 4.2 Recovery: 47%Date: 6/5/2025 Strain: 8.2 Recovery: 90%Date: 6/4/2025 Strain: 9.7 Recovery: 78%Date: 6/3/2025 Strain: 8.5 Recovery: 85%Date: 6/2/2025 Strain: 8.0 Recovery: 78%Date: 6/1/2025 Strain: 16.1 Recovery: 68%Date: 5/31/2025 Strain: 5.8 Recovery: 55%Date: 5/30/2025 Strain: 6.8 Recovery: 52%Date: 5/29/2025 Strain: 5.5 Recovery: 77%Date: 5/28/2025 Strain: 8.9 Recovery: 62%Date: 5/27/2025 Strain: 6.7 Recovery: 59%Date: 5/26/2025 Strain: 6.1 Recovery: 57%Date: 5/25/2025 Strain: 16.9 Recovery: 50%Date: 5/24/2025 Strain: 8.4 Recovery: 88%Date: 5/23/2025 Strain: 9.5 Recovery: 64%Date: 5/22/2025 Strain: 11.3 Recovery: 82%Date: 5/21/2025 Strain: 7.3 Recovery: 94%Date: 5/20/2025 Strain: 7.7 Recovery: 64%Date: 5/19/2025 Strain: 5.2 Recovery: 83%Date: 5/18/2025 Strain: 16.9 Recovery: 47%Date: 5/17/2025 Strain: 16.3 Recovery: 82%Date: 5/16/2025 Strain: 11.2 Recovery: 75%Date: 5/15/2025 Strain: 9.1 Recovery: 55%Date: 5/14/2025 Strain: 6.0 Recovery: 73%Date: 5/13/2025 Strain: 6.7 Recovery: 60%Date: 5/12/2025 Strain: 5.2 Recovery: 80%Date: 5/11/2025 Strain: 18.6 Recovery: 36%Date: 5/10/2025 Strain: 16.3 Recovery: 35%Date: 5/9/2025 Strain: 6.8 Recovery: 69%Date: 5/8/2025 Strain: 10.0 Recovery: 65%Date: 5/7/2025 Strain: 12.3 Recovery: 52%Date: 5/6/2025 Strain: 0.3 Recovery: 84%Date: 5/5/2025 Strain: 9.9 Recovery: 45%Date: 5/4/2025 Strain: 16.8 Recovery: 32%Date: 5/3/2025 Strain: 12.8 Recovery: 69%Date: 5/2/2025 Strain: 7.9 Recovery: 50%Date: 4/29/2025 Strain: 11.6 Recovery: 75%Date: 4/28/2025 Strain: 11.9 Recovery: 86%Date: 4/27/2025 Strain: 8.0 Recovery: 78%Date: 4/26/2025 Strain: 8.4 Recovery: 42%Date: 4/25/2025 Strain: 9.6 Recovery: 60%Date: 4/24/2025 Strain: 13.9 Recovery: 61%Date: 4/23/2025 Strain: 6.0 Recovery: 67%Date: 4/22/2025 Strain: 11.1 Recovery: 52%Date: 4/21/2025 Strain: 7.3 Recovery: 93%Date: 4/20/2025 Strain: 20.4 Recovery: 59%Date: 4/19/2025 Strain: 10.5 Recovery: 47%Date: 4/18/2025 Strain: 8.3 Recovery: 41%Date: 4/17/2025 Strain: 11.9 Recovery: 1%Date: 4/16/2025 Strain: 10.6 Recovery: 56%Date: 4/15/2025 Strain: 12.4 Recovery: 57%Date: 4/14/2025 Strain: 13.9 Recovery: 69%Date: 4/13/2025 Strain: 13.4 Recovery: 63%Date: 4/12/2025 Strain: 7.7 Recovery: 1%Date: 4/11/2025 Strain: 10.6 Recovery: 61%Date: 4/10/2025 Strain: 8.7 Recovery: 47%Date: 4/9/2025 Strain: 9.6 Recovery: 37%Date: 4/8/2025 Strain: 8.4 Recovery: 98%Date: 4/7/2025 Strain: 12.8 Recovery: 95%Date: 4/6/2025 Strain: 10.5 Recovery: 77%Date: 4/5/2025 Strain: 9.1 Recovery: 68%Date: 4/4/2025 Strain: 14.7 Recovery: 27%Date: 4/3/2025 Strain: 7.8 Recovery: 1%Date: 4/2/2025 Strain: 16.4 Recovery: 57%Date: 4/1/2025 Strain: 7.0 Recovery: 98%Date: 3/31/2025 Strain: 8.1 Recovery: 53%Date: 3/30/2025 Strain: 11.9 Recovery: 78%Date: 3/29/2025 Strain: 7.5 Recovery: 78%Date: 3/28/2025 Strain: 8.6 Recovery: 64%Date: 3/27/2025 Strain: 14.7 Recovery: 75%Date: 3/26/2025 Strain: 12.8 Recovery: 69%Date: 3/25/2025 Strain: 13.1 Recovery: 66%Date: 3/22/2025 Strain: 14.3 Recovery: 39%Date: 3/21/2025 Strain: 16.0 Recovery: 90%Date: 3/20/2025 Strain: 13.1 Recovery: 72%Date: 3/19/2025 Strain: 14.0 Recovery: 74%Date: 3/18/2025 Strain: 13.2 Recovery: 84%Date: 3/17/2025 Strain: 13.3 Recovery: 90%Date: 3/16/2025 Strain: 15.6 Recovery: 56%Date: 3/15/2025 Strain: 15.0 Recovery: 43%Date: 3/12/2025 Strain: 7.1 Recovery: 36%Date: 3/11/2025 Strain: 8.3 Recovery: 45%Date: 3/10/2025 Strain: 9.5 Recovery: 57%Date: 3/9/2025 Strain: 3.5 Recovery: 62%Date: 3/8/2025 Strain: 14.9 Recovery: 52%Date: 3/7/2025 Strain: 14.0 Recovery: 55%Date: 3/6/2025 Strain: 14.9 Recovery: 44%Date: 3/5/2025 Strain: 11.0 Recovery: 77%Date: 3/4/2025 Strain: 11.9 Recovery: 51%Date: 3/3/2025 Strain: 12.6 Recovery: 80%Date: 3/2/2025 Strain: 7.9 Recovery: 86%Date: 3/1/2025 Strain: 8.4 Recovery: 1%Date: 2/28/2025 Strain: 15.5 Recovery: 65%Date: 2/27/2025 Strain: 2.0 Recovery: 94%Date: 2/26/2025 Strain: 10.2 Recovery: 53%Date: 2/25/2025 Strain: 11.1 Recovery: 47%Date: 2/24/2025 Strain: 11.6 Recovery: 59%Date: 2/23/2025 Strain: 15.5 Recovery: 40%Date: 2/22/2025 Strain: 6.6 Recovery: 72%Date: 2/21/2025 Strain: 16.1 Recovery: 38%Date: 2/20/2025 Strain: 4.1 Recovery: 67%Date: 2/19/2025 Strain: 13.1 Recovery: 48%Date: 2/18/2025 Strain: 7.4 Recovery: 74%Date: 2/17/2025 Strain: 13.8 Recovery: 64%Date: 2/16/2025 Strain: 6.2 Recovery: 88%Date: 2/15/2025 Strain: 16.4 Recovery: 55%Date: 2/14/2025 Strain: 15.4 Recovery: 51%Date: 2/11/2025 Strain: 6.6 Recovery: 1%Date: 2/10/2025 Strain: 5.9 Recovery: 61%Date: 2/9/2025 Strain: 12.8 Recovery: 70%Date: 2/8/2025 Strain: 9.1 Recovery: 38%Date: 2/7/2025 Strain: 7.0 Recovery: 75%Date: 2/6/2025 Strain: 14.5 Recovery: 6%Date: 2/5/2025 Strain: 10.6 Recovery: 65%Date: 2/4/2025 Strain: 8.7 Recovery: 53%Date: 2/3/2025 Strain: 9.8 Recovery: 60%Date: 2/2/2025 Strain: 6.1 Recovery: 62%Date: 2/1/2025 Strain: 13.9 Recovery: 52%Date: 1/31/2025 Strain: 12.8 Recovery: 68%Date: 1/30/2025 Strain: 14.7 Recovery: 39%Date: 1/29/2025 Strain: 7.6 Recovery: 91%Date: 1/28/2025 Strain: 16.6 Recovery: 55%Date: 1/27/2025 Strain: 12.2 Recovery: 91%Date: 1/26/2025 Strain: 18.3 Recovery: 51%Date: 1/25/2025 Strain: 14.3 Recovery: 67%Date: 1/24/2025 Strain: 14.6 Recovery: 2%Date: 1/23/2025 Strain: 15.7 Recovery: 45%Date: 1/22/2025 Strain: 14.7 Recovery: 89%Date: 1/21/2025 Strain: 12.0 Recovery: 1%Date: 1/20/2025 Strain: 7.7 Recovery: 60%Date: 1/19/2025 Strain: 6.0 Recovery: 89%Date: 1/18/2025 Strain: 11.9 Recovery: 51%Date: 1/17/2025 Strain: 12.3 Recovery: 34%Date: 1/16/2025 Strain: 14.8 Recovery: 64%Date: 1/15/2025 Strain: 14.7 Recovery: 42%Date: 1/14/2025 Strain: 12.5 Recovery: 74%Strain ScoreRecovery Score (%)

Recovery Zones

Optimal Recovery (67%+): 91 days
Moderate Recovery (34-66%): 117 days
Poor Recovery (<34%): 22 days

Correlation Analysis

Trend: Negative Weak correlation

No clear linear relationship between strain and recovery—recovery depends on multiple factors beyond daily strain.

How do I distribute my training time?

Training Analytics

Time-series analysis showing training distribution across different sports and workout types.Sleep Performance vs. Daily Recovery • Workout Type DistributionSkills: Time-series Analysis, Data Storytelling, Advanced Visualizations

Training Hours Distribution

Monthly training hours by sport type, showing my focus on weightlifting, running, and boxing throughout the year.

Monthly Training Hours

Weightlifting
Running
Boxing
0h7h15h22h29hJanFebMarAprMayJunJulAugSepOctNovDecHoursJan: 10.8 hours of WeightliftingJan: 0.0 hours of RunningJan: 4.2 hours of BoxingFeb: 9.3 hours of WeightliftingFeb: 0.0 hours of RunningFeb: 0.9 hours of BoxingMar: 15.0 hours of WeightliftingMar: 0.0 hours of RunningMar: 1.5 hours of BoxingApr: 23.9 hours of WeightliftingApr: 0.0 hours of RunningApr: 0.0 hours of BoxingMay: 14.0 hours of WeightliftingMay: 4.1 hours of RunningMay: 0.3 hours of BoxingJun: 5.2 hours of WeightliftingJun: 1.7 hours of RunningJun: 0.0 hours of BoxingJul: 7.7 hours of WeightliftingJul: 0.9 hours of RunningJul: 2.3 hours of BoxingAug: 7.7 hours of WeightliftingAug: 7.5 hours of RunningAug: 1.0 hours of BoxingSep: 3.2 hours of WeightliftingSep: 0.0 hours of RunningSep: 0.2 hours of BoxingOct: 0.0 hours of WeightliftingOct: 0.0 hours of RunningOct: 0.0 hours of BoxingNov: 0.0 hours of WeightliftingNov: 0.0 hours of RunningNov: 0.0 hours of BoxingDec: 0.0 hours of WeightliftingDec: 0.0 hours of RunningDec: 0.0 hours of Boxing

Yearly Distribution

TOTAL121.5HOURS
Weightlifting
96.8h
Running
14.3h
Boxing
10.4h