A fitness tracking platform built for real athletes. React Native, BLE heart rate, offline-first architecture.
An offline-first fitness tracker with real-time heart rate monitoring, intelligent workout comparison, and social competition.
Expo Router provides file-system routing with deep linking. Tab navigator with 5 main screens and modal stacks.
Every workout is scored against a chosen opponent — your last session, personal best, or a friend's shared workout.
BLE to chart — foreground and background paths with native Android service bridge
startForegroundService() must be called while app is in foreground.useHRLogger gates on isAppActive.All workout data lives in local SQLite. React Query with AsyncStorage persistence provides the caching layer. Firebase handles social features only.
| Table | Purpose | Scale |
|---|---|---|
exercises | Exercise library | 150+ |
sessions | Completed workouts | unbounded |
session_sets | Set/rep/weight logs | unbounded |
session_heart_rate | 1s HR samples | unbounded |
health_connect_log | Body composition | daily |
youvsyou_results | Win/loss records | unbounded |
CREATE TABLE IF NOT EXISTSA composite 0-1000 score that rewards volume, cardio effort, consistency, and competitive engagement.
Firebase-powered social features — friend codes, shared workouts, challenges, and activity feed. Auth via email magic links.
users/{uid}
Profile, friends list, blocked IDs
public_profiles
Friend-accessible statistics
friend_requests
Pending / accepted state
shared_workouts
Templates shared to feed
challenges
Head-to-head competitions