A fitness balance app with calories calculator (consumed+burnt), extensive mapping/routing capabilities route for your walks and bike rides
Idea 1 — Tire pressure: - tire_pressure_bar field in bikes table and bike modal - Crr corrected by sqrt(3.0 / pressure), reference 3.0 bar - Passed through all opts chains (recording, recovery, recalculate) Idea 3 — Lap comparison: - "Сравнить с..." button in session detail - Shows sessions with same type and similar distance (+-30%) - Overlay: current track green/red (faster/slower), comparison cyan dashed - Nearest-neighbor speed matching between tracks - Summary: time and speed difference Idea 4 — Auto climb segments: - computeStats returns segments[] with type (climb/flat/descent) - Gradient > 2% = climb, < -2% = descent, else flat - Min 50m per segment, adjacent same-type merged - Stats per segment: distance, elevation, gradient, duration, speed - UI section in session detail with colored icons Idea 5 — Bike maintenance log: - bike_maintenance table (date, description, mileage, next_service_km) - Total mileage from GPS sessions per bike - Overdue indicator when current mileage >= next_service_km - Add/delete entries in bike modal - CRUD functions on window.DB |
||
|---|---|---|
| frontend | ||
| src | ||
| src-tauri | ||
| .gitignore | ||
| data.js | ||
| index.html | ||
| package-lock.json | ||
| package.json | ||
| PROJECT_MAP.md | ||
| README.md | ||
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) |