Fitness application for (blood pressure, weight, food journaling)
Kotlin
2
61 commits
updated Oct 11, 2026
HealthCoach is a modern, local-first personal health management and analytics application built with Kotlin Multiplatform (KMP) and Compose Multiplatform. Designed to maximize user empowerment, health insight, and day-to-day tracking efficiency, HealthCoach gives you total control over your health metrics—including body weight, blood pressure, pulse, daily nutrition, and metabolic targets—backed by robust analytics, AHA clinical classifications, compound multi-axis charts, and seamless cross-device synchronization.
🌐 Website & Downloads: https://bigtlb.github.io/healthcoach
HealthCoach is designed and provided solely for personal health tracking, wellness organization, and informational purposes. HealthCoach is not a certified medical device and does not provide clinical diagnoses, medical advice, treatment plans, or emergency health intervention.
The clinical classifications (such as American Heart Association blood pressure categories) and metabolic calculations (such as Mifflin-St Jeor BMR and TDEE estimates) provided in this application are general educational references only. Always consult a qualified physician or licensed healthcare professional before making health, dietary, exercise, or medical decisions, or if you have concerns regarding your blood pressure readings, heart rate, or body weight.
For full terms and conditions, see DISCLAIMER.md.
HealthCoach is engineered from the ground up around complete user data sovereignty:
healthcoach.db) on your physical device.appDataFolder) accessible only by your authenticated Google account, invisible to standard Drive file listings.HealthCoach provides a tailored user experience across both desktop workstations and mobile devices:
👉 Explore the Complete Visual Feature Gallery (24 Screenshots across Desktop & Mobile)
(Detailed visual walkthrough covering Weight Analytics, Blood Pressure classifications, Food Journaling & Portion Scaling, Metabolic Profiling, Multi-Axis Compound Graphs, and P2P Wi-Fi Sync.)
lbs) or Metric (kg) with instantaneous unit conversion.YY/MM (e.g., 26/01) across multi-year spans to maximize temporal clarity.lbs / kg)mmHg)mmHg)bpm)kcal)BASE, LOCAL, REMOTE) with UUID keys and updated_at last-write-wins conflict resolution, guaranteeing zero data loss across concurrent edits.PRAGMA user_version protecting databases from schema mismatch corruption.appDataFolder): PKCE OAuth 2.0 desktop synchronization directly with Google Drive's isolated application storage.| Shortcut | Action |
|---|---|
Ctrl + W | Open Weight view |
Ctrl + B | Open Blood Pressure view |
Ctrl + J | Open Food Journal view |
Ctrl + G | Open Compound Graphs view |
Ctrl + P | Open Profile & Goals dialog |
Ctrl + N | Open Add Entry dialog for current view |
Ctrl + S | Open Settings & Sync dialog |
Ctrl + Q | Quit application |
All data is structured for high reliability, zero data corruption, and easy backups:
healthcoach.db): Embedded SQLite database managed with SqlDelight, featuring automated migration scripts for safe schema evolution.settings.json): Human-readable, pretty-printed JSON storing user preferences, theme selections, active sync configurations, and display toggles.| Platform | Database Location (healthcoach.db) | Preferences Location (settings.json) |
|---|---|---|
| Linux | ~/.local/share/healthcoach/healthcoach.db | ~/.local/share/healthcoach/settings.json |
| Windows | %LOCALAPPDATA%\healthcoach\healthcoach.db | %LOCALAPPDATA%\healthcoach\settings.json |
| macOS | ~/Library/Application Support/healthcoach/healthcoach.db | ~/Library/Application Support/healthcoach/settings.json |
| Android | /data/data/com.lbthomas.healthcoach/databases/healthcoach.db | /data/data/com.lbthomas.healthcoach/files/settings.json |
Note: On Linux, $XDG_DATA_HOME/healthcoach/ is respected when set in your environment.
HealthCoach/
├── androidApp/ # Android entrypoint, manifests & platform bindings
├── desktopApp/ # Desktop JVM launcher & native packaging configs
└── shared/ # Shared Multiplatform Kotlin codebase
├── commonMain/ # UI (Compose), ViewModels, Repositories, Domain models, Sync engine
├── jvmMain/ # JVM JDBC driver factory, JmDNS discovery, PKCE auth server
└── androidMain/ # Android SQLite driver factory, NsdManager discovery, Android context
NsdManager (mDNS / DNS-SD)kotlinx.coroutines, kotlinx.serialization, kotlinx.datetime./gradlew :desktopApp:run
./gradlew :desktopApp:hotRun --auto
./gradlew :desktopApp:packageDistributionForCurrentOS
Building standalone .flatpak bundles requires flatpak, flatpak-builder, and the Freedesktop 23.08 Platform and SDK.
sudo dnf install -y flatpak flatpak-builder
sudo apt update && sudo apt install -y flatpak flatpak-builder
flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install --user -y flathub org.freedesktop.Platform//23.08 org.freedesktop.Sdk//23.08
.flatpak):
./gradlew :desktopApp:packageFlatpakBundle
(Output generated at desktopApp/build/flatpak/HealthCoach-<version>.flatpak)./gradlew :desktopApp:packageFlatpak
(Output generated at desktopApp/build/flatpak/repo/)./gradlew :androidApp:assembleDebug
./gradlew :androidApp:installDebug
./gradlew :shared:jvmTest
./gradlew test
Fitness application for (blood pressure, weight, food journaling)
Kotlin
2
61 commits
updated Oct 11, 2026
HealthCoach is a modern, local-first personal health management and analytics application built with Kotlin Multiplatform (KMP) and Compose Multiplatform. Designed to maximize user empowerment, health insight, and day-to-day tracking efficiency, HealthCoach gives you total control over your health metrics—including body weight, blood pressure, pulse, daily nutrition, and metabolic targets—backed by robust analytics, AHA clinical classifications, compound multi-axis charts, and seamless cross-device synchronization.
🌐 Website & Downloads: https://bigtlb.github.io/healthcoach
HealthCoach is designed and provided solely for personal health tracking, wellness organization, and informational purposes. HealthCoach is not a certified medical device and does not provide clinical diagnoses, medical advice, treatment plans, or emergency health intervention.
The clinical classifications (such as American Heart Association blood pressure categories) and metabolic calculations (such as Mifflin-St Jeor BMR and TDEE estimates) provided in this application are general educational references only. Always consult a qualified physician or licensed healthcare professional before making health, dietary, exercise, or medical decisions, or if you have concerns regarding your blood pressure readings, heart rate, or body weight.
For full terms and conditions, see DISCLAIMER.md.
HealthCoach is engineered from the ground up around complete user data sovereignty:
healthcoach.db) on your physical device.appDataFolder) accessible only by your authenticated Google account, invisible to standard Drive file listings.HealthCoach provides a tailored user experience across both desktop workstations and mobile devices:
👉 Explore the Complete Visual Feature Gallery (24 Screenshots across Desktop & Mobile)
(Detailed visual walkthrough covering Weight Analytics, Blood Pressure classifications, Food Journaling & Portion Scaling, Metabolic Profiling, Multi-Axis Compound Graphs, and P2P Wi-Fi Sync.)
lbs) or Metric (kg) with instantaneous unit conversion.YY/MM (e.g., 26/01) across multi-year spans to maximize temporal clarity.lbs / kg)mmHg)mmHg)bpm)kcal)BASE, LOCAL, REMOTE) with UUID keys and updated_at last-write-wins conflict resolution, guaranteeing zero data loss across concurrent edits.PRAGMA user_version protecting databases from schema mismatch corruption.appDataFolder): PKCE OAuth 2.0 desktop synchronization directly with Google Drive's isolated application storage.| Shortcut | Action |
|---|---|
Ctrl + W | Open Weight view |
Ctrl + B | Open Blood Pressure view |
Ctrl + J | Open Food Journal view |
Ctrl + G | Open Compound Graphs view |
Ctrl + P | Open Profile & Goals dialog |
Ctrl + N | Open Add Entry dialog for current view |
Ctrl + S | Open Settings & Sync dialog |
Ctrl + Q | Quit application |
All data is structured for high reliability, zero data corruption, and easy backups:
healthcoach.db): Embedded SQLite database managed with SqlDelight, featuring automated migration scripts for safe schema evolution.settings.json): Human-readable, pretty-printed JSON storing user preferences, theme selections, active sync configurations, and display toggles.| Platform | Database Location (healthcoach.db) | Preferences Location (settings.json) |
|---|---|---|
| Linux | ~/.local/share/healthcoach/healthcoach.db | ~/.local/share/healthcoach/settings.json |
| Windows | %LOCALAPPDATA%\healthcoach\healthcoach.db | %LOCALAPPDATA%\healthcoach\settings.json |
| macOS | ~/Library/Application Support/healthcoach/healthcoach.db | ~/Library/Application Support/healthcoach/settings.json |
| Android | /data/data/com.lbthomas.healthcoach/databases/healthcoach.db | /data/data/com.lbthomas.healthcoach/files/settings.json |
Note: On Linux, $XDG_DATA_HOME/healthcoach/ is respected when set in your environment.
HealthCoach/
├── androidApp/ # Android entrypoint, manifests & platform bindings
├── desktopApp/ # Desktop JVM launcher & native packaging configs
└── shared/ # Shared Multiplatform Kotlin codebase
├── commonMain/ # UI (Compose), ViewModels, Repositories, Domain models, Sync engine
├── jvmMain/ # JVM JDBC driver factory, JmDNS discovery, PKCE auth server
└── androidMain/ # Android SQLite driver factory, NsdManager discovery, Android context
NsdManager (mDNS / DNS-SD)kotlinx.coroutines, kotlinx.serialization, kotlinx.datetime./gradlew :desktopApp:run
./gradlew :desktopApp:hotRun --auto
./gradlew :desktopApp:packageDistributionForCurrentOS
Building standalone .flatpak bundles requires flatpak, flatpak-builder, and the Freedesktop 23.08 Platform and SDK.
sudo dnf install -y flatpak flatpak-builder
sudo apt update && sudo apt install -y flatpak flatpak-builder
flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
flatpak install --user -y flathub org.freedesktop.Platform//23.08 org.freedesktop.Sdk//23.08
.flatpak):
./gradlew :desktopApp:packageFlatpakBundle
(Output generated at desktopApp/build/flatpak/HealthCoach-<version>.flatpak)./gradlew :desktopApp:packageFlatpak
(Output generated at desktopApp/build/flatpak/repo/)./gradlew :androidApp:assembleDebug
./gradlew :androidApp:installDebug
./gradlew :shared:jvmTest
./gradlew test