A fitness balance app with calories calculator (consumed+burnt), extensive mapping/routing capabilities route for your walks and bike rides
Find a file
4aiman 7c93bb75c3 OTA updates, BLE HR, water tracking, GPS altitude filter, BMR fix, nutrient units
OTA: VPS nginx endpoint, build.sh -u upload flag, Kotlin check + browser download
BLE HR: FitPro protocol (PAIR/CCCD/HR_SWITCH/REALTIME/MEASURE), GATT queue,
  ACK responses, auto-detect device type, auto-start with GPS, re-trigger 25s
  Kotlin BleHrService, btleplug for desktop, file IPC for Android
Water: products.water_pct column, getDailyWaterMl(), progress bar on today screen
GPS altitude: outlier spike filter (>4m), stuck run interpolation (5+ identical),
  configurable smoothing (altSmoothHalf setting), filtered raw for kcal calc
BMR: removed broken estimateRealBmr, added activity level dropdown (1.2-1.725),
  fixed 7-day trend using dailyBase instead of raw bmr
Nutrients: ginseng/resveratrol/coq10 columns, fixed folate/selenium units (removed
  mult:1000), iodine/chromium input in mcg, addSupplement now inserts all 41 columns
UI: parseAmount() for 4*30 expressions, recipe portion amount field, nutrient
  reserves strip, GPS sessions in today view, pan on charts, showToast(),
  HR norms in settings, HR on recording screen, HR chart in track details
Scrapers: 5ka Load JSON button, magnit_scraper.user.js (NUXT_DATA parsing)
2026-06-07 01:36:38 +03:00
frontend OTA updates, BLE HR, water tracking, GPS altitude filter, BMR fix, nutrient units 2026-06-07 01:36:38 +03:00
src GPS point ordering + GPX export + chart zoom fixes 2026-05-16 21:21:13 +03:00
src-tauri OTA updates, BLE HR, water tracking, GPS altitude filter, BMR fix, nutrient units 2026-06-07 01:36:38 +03:00
.gitignore Initial commit: BalDav health tracker 2026-05-13 10:21:24 +03:00
data.js GPS point ordering + GPX export + chart zoom fixes 2026-05-16 21:21:13 +03:00
index.html GPS point ordering + GPX export + chart zoom fixes 2026-05-16 21:21:13 +03:00
package-lock.json GPS point ordering + GPX export + chart zoom fixes 2026-05-16 21:21:13 +03:00
package.json Initial commit: BalDav health tracker 2026-05-13 10:21:24 +03:00
PROJECT_MAP.md Update PROJECT_MAP, README, session logs with current stats 2026-05-29 17:47:58 +03:00
README.md Physics settings in UI, recipe modal cleanup, weight parseFloat fixes 2026-05-26 02:14:43 +03:00

BalDav

Персональный трекер здоровья и физической активности.

Возможности

  • Дневник питания — 13480 продуктов из магазинов (Магнит, 5ка, KDV) + база ИОН с микронутриентами. Рецепты с учётом термообработки (потери витаминов при варке/жарке). Единицы измерения (штуки, ложки, стаканы).
  • GPS трекинг — запись маршрутов на велосипеде/пешком в фоне. Оффлайн карты (Leaflet + IndexedDB кэш). Импорт GPX/FTB (FitoTrack). Экспорт GPX.
  • Расчёт ккал — физическая модель для велосипеда (мощность из gradient + Crr + CdA). MET-таблица для ходьбы/бега. Профили велосипедов (вес, звёзды, покрытие).
  • Графики — скорость и высота тренировки с зумом. Тренд веса. Донат макронутриентов. Баланс ккал (приход/расход).
  • Вес, сон, добавки — логирование с историей.

Стек

  • Frontend: чистый JavaScript, HTML, CSS. Без React/Vue/bundler.
  • Backend: Rust (Tauri 2) — SQLite, IPC, seed import.
  • Android: Kotlin — foreground GPS service, WakeLock, SAF.
  • Библиотеки: Leaflet (карты), Chart.js (графики), Hammer.js (жесты), JSZip.

Сборка

# Зависимости: Rust, Node.js, Android SDK + NDK
./build.sh -d android     # debug APK
./build.sh android        # release APK
./build.sh -i android -d  # debug + установка на устройство

Структура

Подробно: PROJECT_MAP.md

frontend/
  js/main.js          — UI, навигация, модалки (3264 строк)
  js/db.js            — БД, миграции, CRUD (972)
  js/gps.js           — GPS, физика ккал (947)
  js/tilecache.js     — оффлайн тайлы (178)
  css/styles.css      — стили (1599)
  data/products_seed.db — 13480 продуктов
src-tauri/
  src/lib.rs          — Rust бэкенд (512)
  gen/android/        — Kotlin: MainActivity, GpsRecorderService
tools/
  *_scraper.user.js   — скрейперы магазинов (Tampermonkey)
  import_*.js         — импорт в seed DB
  enrich_nutrients.js — обогащение микронутриентами

Данные продуктов

Источник Продуктов Витамины/минералы
Магнит (SSR парсинг) 8627 нет
5ка (API скрейпер) 3103 нет
ИОН (web.ion.ru) 1078 да
KDV (SSR парсинг) 672 нет
Обогащено из ИОН 1398 да (nutrients_guessed)