Cycling ride data analysis and course recommendations

Ride data was fragmented across Strava, Garmin Connect, and local GPX files. No single platform provided a unified view of all riding history with consistent metrics and route information.
Existing platforms showed individual ride maps but lacked aggregate route analysis — no heatmaps of frequently ridden roads, no segment-level performance comparison, and no data-driven route discovery.
Cyclists in the same region had no way to share route recommendations, compare performance on shared segments, or discover popular routes beyond word-of-mouth suggestions.
Ride data scattered across multiple platforms and file formats
Unified dashboard with 4-stage data pipeline aggregating all ride sources
Individual ride maps with no aggregate route intelligence
Route heatmaps and segment-level performance analysis on Kakao Maps
Discovering routes only through word-of-mouth or trial rides
Data-driven course recommendations based on riding patterns and preferences
Raw ride data flows through a 4-stage pipeline: Staging (ingest GPX/FIT files and normalize timestamps), Matching (identify repeated routes using GPS fingerprinting), Fingerprinting (extract segment-level features like elevation gain, average speed, and difficulty), and Curation (rank and recommend routes based on riding history and preferences). Each stage is idempotent and independently scalable. The pipeline processes EXIF metadata from ride photos to geo-tag images onto routes. Kakao Maps SDK renders the final visualization with performance overlays.
BDD Pipeline Flow

Comprehensive dashboard showing all ride statistics — distance, elevation, power, heart rate — with filterable views by date range, route, and ride type. Server/client component boundary optimization ensures fast initial load with interactive drill-downs.

Aggregate visualization of all ride routes on Kakao Maps, with color intensity indicating ride frequency. Identify your most-ridden roads, discover unexplored areas nearby, and visualize seasonal riding pattern changes.

Compare performance across rides on the same route — speed, power, and heart rate overlaid on the route map. Track segment-level improvements over time and identify sections where you're getting faster or slower.

AI-powered course suggestions based on your riding history, fitness level, and preferences (distance, elevation, scenery). Analyzes curated route data to recommend new routes that match your training goals and exploration interests.
Stage → Match → Fingerprint → Curate
Automated repeated route detection via GPS matching
Ride photos auto-placed on routes via EXIF metadata
Optimized server/client boundary for fast initial loads