Skip to content

saicojavc/fitlog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

188 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation


  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•—      โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—
  โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ•โ–ˆโ–ˆโ•‘โ•šโ•โ•โ–ˆโ–ˆโ•”โ•โ•โ•โ–ˆโ–ˆโ•‘     โ–ˆโ–ˆโ•”โ•โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ•
  โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—  โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘     โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘  โ–ˆโ–ˆโ–ˆโ•—
  โ–ˆโ–ˆโ•”โ•โ•โ•  โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘     โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘
  โ–ˆโ–ˆโ•‘     โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ•‘   โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•
  โ•šโ•โ•     โ•šโ•โ•   โ•šโ•โ•   โ•šโ•โ•โ•โ•โ•โ•โ• โ•šโ•โ•โ•โ•โ•โ•  โ•šโ•โ•โ•โ•โ•โ•

Performance Telemetry for the Human Core

Track. Analyze. Level Up.


Version Kotlin Compose Architecture Offline No Ads


HomeScreen Workout GymWork History
Dashboard Outdoor Run Gym Work History


โœฆ Concept

FitLog treats your body like a system with telemetry.

Most fitness apps show you numbers. FitLog gives you states โ€” your step count is a Core Energy level, your streak is a signal, your week is a performance scan. The entire interface is built around a cyberpunk/technical aesthetic: particle backgrounds, streak orbs, and data-driven animations that respond to your actual behavior.

It's offline-first, zero-ads, and 100% private. Your health data stays on your device.


โœฆ What's New โ€” v1.0.2 "The Pro Update"

Feature Description
Weight Tracking Pro Full evolution module with auto-compressing charts + real-time BMI calculation
Smart PDF Reports Export your entire activity history as a professional document, on-device
Precision Timers SystemClock-based chronometers โ€” accurate even when screen is locked
Dynamic Leveling Profile level (Beginner โ†’ Intermediate โ†’ Pro) recalculates automatically from your goals
Cloud Version Sync Firebase Realtime Database notifies you instantly when a new version drops

โœฆ Features

๐Ÿง  Intelligent Streak System

FitLog's streak engine goes beyond simple day counting.

  • Consecutive day tracking based on daily step goal completion
  • Grace Period: Miss one day โ†’ streak freezes. Miss two โ†’ streak resets. No brutal punishments for human life
  • Level Up Animation: Full-screen SyncLevelUpScreen with a technical orb that celebrates every streak increment

๐Ÿ“Š Dashboard โ€” Core Telemetry

Your health state at a glance, rendered as live data:

  • Native hardware step counter โ€” ultra-low battery via sensor fusion
  • Weekly activity grid โ€” visual consistency scan across 7 days
  • Real-time metrics โ€” steps, calories, and distance in a single unified interface
  • Glassmorphism UI โ€” semi-transparent panels, vivid gradients, smooth Compose animations

๐Ÿƒ Outdoor Activity Tracking

Professional-grade session engine for walking, running, and cycling:

  • Real-time GPS tracking with distance, pace, and calorie output
  • MET-based calorie algorithm โ€” factors in your weight, age, and live GPS speed for genuine accuracy (not estimations)
  • Persistent Workout Card โ€” a live notification on the lock screen and status bar showing timer + metrics without opening the app
  • Auto-save โ€” sessions are indexed into history on completion

๐Ÿ‹๏ธ Gym & Strength Training

A robust dual-mode logger:

Solo Mode โ€” manual logging of exercises, sets, reps, and weight (Kg or Lb)

Protocol Mode (Guided) โ€” a structured 5-day split:

Day Focus Supports
Day 1 Push Gym + Home
Day 2 Pull Gym + Home
Day 3 Legs Gym + Home
Day 4 Upper Gym + Home
Day 5 Full Body Gym + Home
  • Rest Timer with dynamic +15s extension โ€” tap to breathe
  • Expandable Exercise Cards โ€” clean layout that handles long exercise names without UI breakage

โš–๏ธ Weight Tracking & Health Insights

  • Evolution chart โ€” auto-compresses as data accumulates, always readable
  • BMI analysis with visual scale: Underweight / Normal / Overweight / Obese
  • Timestamped history โ€” every entry logged for long-term trend analysis

๐Ÿ”” Notification Telemetry

Smart alerts that respond to your actual progress, not just the clock:

Trigger Alert Type
Goal at 50% Progress nudge
Goal at 90% Final push notification
9:00 PM, goal unmet Critical level alert
Training reminder Persistent alarm-style notification

All notifications are setExactAndAllowWhileIdle โ€” they fire even in Doze mode.


๐Ÿ“œ History & Export

  • Smart filters: Day / Week / Month / All Time
  • PDF export: Clean structured report for coaches, logs, or personal records
  • Bilingual: Fully localized in English and Espaรฑol

๐ŸŽฎ Gamification (in development)

  • Unlockable achievements based on streak milestones
  • Badges for total volume lifted across all gym sessions
  • Weekly performance dashboard with telemetry-style data graphs

โœฆ Architecture

FitLog is built on Modular Clean Architecture following Google's official recommendations, with full separation between layers and features:

fitlog/
โ”œโ”€โ”€ app/                        โ†’ MainActivity, NavHost, Hilt setup, permission orchestration
โ”‚                                 Launches StepCounterService (Foreground, API 34+ compliant)
โ”‚
โ”œโ”€โ”€ core/
โ”‚   โ”œโ”€โ”€ database/               โ†’ Room DB โ€” profiles, gym sessions, runs, goals
โ”‚   โ”‚                             Schema migrations v5 โ†’ v6 with full data integrity
โ”‚   โ”œโ”€โ”€ datastore/              โ†’ User preferences (theme, units, notification flags)
โ”‚   โ”œโ”€โ”€ domain/                 โ†’ Pure business logic โ€” UseCases, repository interfaces
โ”‚   โ”œโ”€โ”€ model/                  โ†’ Shared data models across all modules
โ”‚   โ”œโ”€โ”€ network/                โ†’ Firebase Realtime Database sync layer
โ”‚   โ”œโ”€โ”€ ui/                     โ†’ Design system: theme, typography, custom icons, strings
โ”‚   โ””โ”€โ”€ notification/           โ†’ Alert engine, AlarmManager workers
โ”‚
โ””โ”€โ”€ feature/
    โ”œโ”€โ”€ dashboard/              โ†’ Core telemetry view, step tracking, streak orb
    โ”œโ”€โ”€ gymwork/                โ†’ Solo + Protocol modes, rest timer
    โ”œโ”€โ”€ outdoorrun/             โ†’ GPS tracking, MET calorie engine
    โ”œโ”€โ”€ onboarding/             โ†’ Profile setup, unit system, dynamic leveling
    โ”œโ”€โ”€ weight/                 โ†’ BMI module, evolution chart
    โ”œโ”€โ”€ history/                โ†’ Filters, PDF export
    โ””โ”€โ”€ settings/               โ†’ Theme, language, notifications, profile

Data flow:

Compose UI โ”€โ”€โ–บ ViewModel (StateFlow) โ”€โ”€โ–บ UseCase โ”€โ”€โ–บ Repository
                    โ–ฒ                                     โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ Flow โ—„โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                                              โ”‚
                                    Room โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€ Firebase

State management pattern: MVI/MVVM hybrid โ€” each feature exposes a sealed UiState consumed via collectAsStateWithLifecycle.


โœฆ Tech Stack

Language            Kotlin 2.1.0
UI                  Jetpack Compose + Material 3
State               StateFlow + MVI UiState pattern
DI                  Dagger Hilt + KSP
Local DB            Room (migrations v5โ†’v6)
Preferences         DataStore
Background          Foreground Service (step counter, API 34+)
Alarms              AlarmManager โ€” setExactAndAllowWhileIdle
Cloud               Firebase Realtime Database
Build               ProGuard/R8 with custom rules
Localization        English + Espaรฑol

โœฆ Privacy & Performance

  • Offline-first โ€” all health data lives on your device
  • Zero ads โ€” no trackers, no banners, no distractions
  • Battery optimized โ€” hardware sensor fusion for step counting, smart service lifecycle
  • ProGuard/R8 โ€” code shrinking and obfuscation without compromising stability

โœฆ Getting Started

Prerequisites

  • Android Studio Hedgehog or later
  • JDK 17
  • Android SDK 26+ (target: 34)

Clone & run

git clone https://github.com/saicojavc/fitlog.git
cd fitlog

Open in Android Studio, sync Gradle, and run on a device or emulator (API 26+).

Note: GPS tracking and step counting require a physical device for full functionality.


โœฆ Roadmap

  • Weight tracking + BMI module
  • PDF export engine
  • Protocol gym mode (5-day split)
  • Grace-period streak system
  • MET-based calorie calculation
  • Weekly telemetry graphs (performance dashboard)
  • Achievement system (streaks + volume milestones)
  • WearOS sync
  • Gemini API โ€” AI-powered weekly performance summary


"Your body generates data every second. FitLog just makes it readable."


Built with โšก by Jorge Adriรกn Valdรฉs Camacho Portfolio ยท GitHub ยท LinkedIn


About

This project is a native mobile application for Android developed in Kotlin with Jetpack Compose, designed as a personal and simple fitness tracker, especially aimed at beginners who combine gym workouts with walking and running.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages