Dashboard →
FlutterFirebaseDartBLE Active

RunCompanion

An AI-powered running coach that adapts to your sessions, syncs across every device, and connects to robot hardware over Bluetooth.

Overview

RunCompanion was built to solve one problem: static training plans don't work. Real training requires real feedback — adjusting Tuesday's long run based on Monday's effort, or shortening a session when recovery metrics are poor. RunCompanion does this automatically, using a lightweight AI function that analyses session data and returns an updated plan in real time.

Features

  • Cross-platform Flutter app: iOS, Android, Windows, Web from one codebase
  • Firebase Firestore real-time, offline-first sync
  • BLE (Bluetooth Low Energy) connection to robot treadmill firmware
  • AI-driven adaptive session planning via Firebase Cloud Functions
  • Live pace, cadence, and heart-rate zone display
  • Riverpod state management with watch-based reactivity
  • Race countdown and interval training modes

Architecture

Presentation

Flutter widgets consume Riverpod providers. No business logic in the UI layer.

BLE Adapter

Isolated adapter that discovers GATT services and subscribes to treadmill speed, incline, and cadence characteristics.

Firestore Adapter

Real-time sync with optimistic local writes and automatic conflict resolution.

AI Function

Firebase Cloud Function that receives session metrics and returns updated training recommendations as structured JSON.

Links