FocusFlow is a full-stack gym management platform built with React 18, TypeScript, Tailwind CSS 4, and Firebase. It provides a bidirectional real-time environment where coaches manage their athletes’ training programs, monitor progress, and handle day-to-day operations, while athletes log workouts, track body measurements, and communicate directly with their coach.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/piratta/gymApp/llms.txt
Use this file to discover all available pages before exploring further.
Quick Start
Set up FocusFlow locally and run your first session in minutes.
Configuration
Configure Firebase, Google OAuth, and environment variables.
Coach Guide
Manage athletes, build routines, review check-ins, and handle billing.
Athlete Guide
Log workouts, track progress, and communicate with your coach.
What FocusFlow Offers
FocusFlow is structured around two primary roles — Coach and Athlete — plus an Admin panel for platform management. Every feature is designed to work in real time with Firebase Firestore as the backing store, plus full offline support with automatic sync when connectivity resumes.Routine Builder
Day-by-day workout programming with RPE/RIR intensity, set customization, and one-click template cloning.
Body Composition
Skinfold analysis using Jackson-Pollock 3/4/7-fold, Durnin-Womersley, and Yuhasz protocols.
Progress Analytics
Interactive charts for body weight trends, training volume, body measurements, and compliance rates.
Weekly Check-ins
Centralized review inbox with photo uploads, wellness scoring, and coach feedback.
Real-Time Chat
Bidirectional messaging with online presence, typing indicators, and read receipts.
Billing
Track subscription payments, flag pending/overdue plans, and generate income summaries.
Getting Started
Clone and install dependencies
Clone the repository and install npm packages to get the development environment running.
Configure Firebase and environment variables
Set up your Firebase project, copy
.env.example to .env, and populate the required keys.Seed initial data (optional)
Use the included seed data to pre-populate users, routines, and exercises for testing.
Architecture at a Glance
Architecture Overview
How the frontend, Firebase backend, and offline sync layer fit together.
Data Model
TypeScript interfaces for users, routines, workouts, reviews, and more.
Firebase Sync
Offline-first persistence, dirty-key tracking, and cloud reconciliation.
Reference
Full TypeScript type reference, utility functions, and formula documentation.