Skip to main content

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.

FocusFlow is a full-stack gym management SaaS platform purpose-built for personal trainers and high-performance athletes. It solves the coordination problem between coaches and their clients by providing a single, real-time workspace for programming workouts, tracking body composition, reviewing weekly check-ins, and communicating — all backed by Firebase Firestore so every change syncs instantly across devices.

Key Features

FocusFlow is organized around six core capability areas, each accessible from a dedicated route in the Coach Dashboard.

Routine Builder

Design day-by-day training blocks with exercises, sets, rep ranges, suggested weights, and RPE/RIR intensity targets. Load pre-built templates in one click or build from scratch.

Body Composition / Plicometría

Record skinfold caliper measurements (Triceps, Subscapular, Biceps, Suprailiac, Chest, Abdomen, Thigh, Axillary) and automatically apply Jackson-Pollock 3-, 4-, and 7-fold formulas to estimate body fat percentage, lean mass, and fat mass.

Progress Analytics

Interactive Recharts and D3.js graphs tracking bodyweight evolution, total volume lifted per session, body measurements over time, and routine compliance rate — all scoped per athlete.

Weekly Check-ins

A unified inbox of weekly check-ins from every athlete. Review wellbeing questionnaires, front/side/back progress photos, and send annotated feedback — without navigating profile by profile.

Real-Time Chat

Bidirectional messaging between coaches and athletes with online presence indicators, typing indicators, read receipts (double blue check), and full conversation history.

Billing

Track monthly subscriptions per client. Mark payments as Paid, Pending, or Overdue, record payment methods, and generate quick income summaries.

Role-Based Access

FocusFlow supports three distinct roles. Each role receives a tailored dashboard and access only to the data and actions relevant to their function.
RoleDescription
CoachFull control over client management, routine programming, exercise catalogue, templates, check-in reviews, real-time chat, agenda, and billing. Can pause or delete client accounts.
Client (Athlete)Mobile-optimized dashboard for logging workouts in real time, tracking bodyweight and body measurements, submitting weekly check-ins with progress photos, viewing coach feedback, and chatting with their trainer.
AdminPlatform-level oversight. Can create, pause, or delete coach accounts, reassign athletes between coaches, manage billing plans for each coach, and promote users to admin status.

Technology Stack

FocusFlow is built on a modern, fully typed front-end stack with Firebase as the serverless backend.
  • React 19 — UI rendering via Vite bundler for instant hot-module replacement during development
  • TypeScript — End-to-end type safety across all components, services, and data models
  • Tailwind CSS 4.0 — Utility-first styling with unified theme variables powering four premium visual themes
  • Firebase Firestore + Auth — Hierarchical NoSQL real-time database with anonymous and Google authentication
  • Recharts + D3.js — Interactive charting library for all athlete progress analytics graphs
  • Motion (motion/react) — Smooth page transitions, tab-switch animations, and button micro-interactions
  • Lucide React — Consistent icon system used throughout the entire interface

Offline-First Architecture

FocusFlow is designed to remain fully functional even when connectivity is lost. Every write is immediately persisted to a local offline backup in the browser, then marked as “dirty” in a sync queue. When connectivity resumes — whether after a brief drop or a full airplane mode session — FocusFlow automatically detects the online browser event and flushes all pending dirty keys back to Firestore via syncOfflineDataToCloud(). A live sync-status badge in the app header always reflects the current state: Synced, Syncing…, N pending, or Offline.

Build docs developers (and LLMs) love