Home About Skills Experience Projects Certifications GitHub ↗ Hire me
← Back to Portfolio
5X Fitness icon
Personal Project · Fitness & Habit Tracking · Flutter · Firebase · Aug 2026 – Sep 2026

5X Fitness

Overview

5X Fitness is a fitness habit-tracker I'm building end to end on Flutter and Firebase — gym attendance, a daily plank habit, workout logging, and body progress, all bilingual from day one. It's not a workout-video app; it's built around the boring, high-leverage habits that actually compound: did you show up, did you log the set, is the plank target still climbing.

The app runs on three fully isolated Firebase projects (dev/staging/prod), each with its own application id and its own App Check enforcement — production gets Play Integrity / App Attest even if a release build is accidentally compiled in debug mode, so a stray debug token can never reach it.

42Exercises in the bundled reference library, 32 with instructional artwork
AR / ENBilingual from the ground up, RTL-checked on every screen
3Isolated Firebase environments (dev / staging / production)
Core Capabilities

What the app does

🏋️
Gym attendance

Check-ins against a weekly target, with streaks and history — the habit the rest of the app is built to reinforce.

⏱️
Daily plank habit

A timed daily plank whose target climbs on its own as you keep showing up, until you set one yourself.

📋
Workout logging

Exercises, sets, and weights in kg or lb, picked from the bundled library or typed freehand.

📚
Exercise library

42 movements across Push/Pull/Legs/Upper/Lower, each with bilingual instructions and suggested sets/reps/rest, and 32 with a reference drawing that crossfades between the start and end of the lift.

📈
Body progress

Measurements and InBody figures charted over time, feeding recommendations read directly off your own record.

🔐
Privacy-first by design

A plain-language privacy screen that also exports everything the app holds about you as a file you can share out — not just a policy link.

Architecture

How it's built

5X Fitness is structured with Clean Architecture using Riverpod for declarative, reactive state management and GoRouter for deep-linkable navigation. The persistence layer integrates Firebase Authentication with Cloud Firestore for real-time habit tracking and user metrics, alongside Firebase Storage for progress media. The client enforces robust offline caching so gym logging continues seamlessly without internet connectivity, automatically syncing when connection is restored. Security is enforced through Firebase App Check with Google Play Integrity attestation.

Riverpod State & UI Layer→Domain Habit & Workout Logic→Local Cache & Offline Queue→Cloud Firestore & Firebase Auth (App Check Protected)
Walkthrough

See it in action

5X Fitness Screenshots Banner
SignIn
SignIn
SignUp
SignUp
Home
Home
Workout Active
Workout Active
Exercise Library
Exercise Library
Exercise
Exercise
Workout Stats
Workout Stats
Progress Week
Progress Week
Progress Month
Progress Month
InBody
InBody
Measurement
Measurement
Profile
Profile
Notifications
Notifications
Plank
Plank
Report
Report
Problems Solved

Real engineering challenges

Environment Isolation
Multi-Tenant Firebase Environments

Maintained three isolated Firebase projects (dev, staging, production) with distinct application IDs, environment-specific configurations, and automated App Check token management, ensuring development experiments never impact production data.

Offline Logging
Resilient Offline Gym Tracking

Gym basements often have zero cellular connectivity. Built an offline-first caching mechanism for workout sets, plank timers, and attendance checks, queuing mutations locally and synchronizing seamlessly upon reconnection.

Plain-Language Privacy
In-App Data Transparency & Export

Designed an in-app privacy center empowering users to review, export their complete workout history and InBody metrics as a portable file, or execute full account deletion compliant with Google Play guidelines.

Technologies Employed

Built with

FlutterRiverpodGoRouterFirebase AuthFirestoreFirebase StorageCloud MessagingFirebase AnalyticsCrashlyticsApp Check
Screenshot preview