Skip to content

Latest commit

Β 

History

64 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

BigBikeData

A monorepo for processing cycling activity data from .FIT files (Garmin/cycling computers). It consists of two independent Flask services, both deployed on Google Cloud Run.

BigBikeData/
β”œβ”€β”€ power_core/        # Backend β€” internal activity processing pipeline
β”œβ”€β”€ site_handler/      # Frontend β€” public web interface for users
└── gcp_actions/       # Shared GCP utilities library (external dependency)

Architecture Overview

sheme

Services

Service Directory Description Access
power_core (readme) power_core/ Internal backend β€” processes .FIT files from Dropbox and from user uploads via Pub/Sub. Cleans GPS data, uploads to Strava, builds heatmaps, stores in PostgreSQL. Internal (private Cloud Run)
site_handler (readme) site_handler/ Public-facing web app. Users upload .FIT files, get cleaned files back via email download links. Sits behind Firebase Hosting with domain allowlist. Public (Firebase Hosting β†’ Cloud Run)

Key Features

  • FIT File Processing β€” decode, analyze, and re-encode .FIT cycling activity files
  • GPS Data Cleaning β€” detect and fix bad GPS coordinates in recorded activities
  • Dropbox Sync β€” webhook-triggered sync of .FIT files from a Dropbox watched folder
  • Strava Integration β€” automatic upload of cleaned activities with correct bike gear
  • Heatmap Building β€” composite GPX heatmaps using GCS object composition
  • PostgreSQL / PostGIS β€” store track points for spatial queries and analysis
  • Email Notifications β€” send download links via SMTP or Brevo API
  • Internationalization β€” English and Ukrainian UI support (Flask-Babel)
  • GCP Pub/Sub β€” asynchronous pipeline orchestration (public user uploads β†’ backend processing)

Deployment

Both services are deployed via Google Cloud Build:

# Backend
gcloud builds submit --config power_core/cloudbuild.yaml

# Frontend
gcloud builds submit --config site_handler/cloudbuild.yaml

The frontend is fronted by Firebase Hosting, which provides security redirects and rewrites traffic to the site_handler Cloud Run service.

Dependencies

Both services share an external dependency on the gcp_actions package for GCP utilities (Pub/Sub, Firestore, GCS, Secret Manager, etc.).

About

πŸ† Multifunctional cloud pipeline for Garmin FIT file processing

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages