Thanks to visit codestin.com
Credit goes to github.com

Skip to content

kamyab9k/FitCore-Documentation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

60 Commits
ย 
ย 
ย 
ย 

Repository files navigation

cover

License API Profile LinkedIn Medium



FitCore: Home Workouts & AI Coach demonstrates the integration of AI with Fitness on Android. Key features include:

  • The integration of AI capabilities for personalized fitness coaching and insights.
  • Categorized exercises based on the user's fitness level and goal.
  • Track user steps with the phone's sensors and provide a weekly data chart.
  • Calorie counter - distance tracker - dynamic BMI calculator and more


๐Ÿ“ฅ Download & Install!


doc_2025-07-16_19-45-12

๐Ÿš€ Onboarding & Setup

Experience a seamless and personalized fitness journey starting with intuitive setup screens, secure user authentication, and smart data-driven personalization.

  1. Modern UI for Onboarding & setup: Dive into your fitness journey with a visually stunning setup process.

  2. Secure User Management: Secure user authentication, including convenient "Forgot Password" and other account management features.

    • Due to Google's policies, users in Iran will be affected by Firebase authentication restrictions. However, they can still access the app's features by selecting the "skip registration" option on this screen.
  3. Deep Personalization: Every piece of your user information is intelligently leveraged to create a truly personalized fitness experience and workout programs just for you.

Setup Animation

๐Ÿ‹๏ธ Personalized Workouts

Your ultimate workout companion, offering personalized plans with dynamic exercise difficulty and live instructor-led sessions to help you crush your fitness goals:

  1. "For You" Personalized Program: Receive a unique workout program specifically designed for you, considering your fitness goals, current level, and other key preferences.

  2. Adaptive Exercise Difficulty: The difficulty of exercises adjusts dynamically based on your fitness level (captured during setup) to ensure the most effective and engaging experience.

  3. Comprehensive Workout Details: Every workout program provides a set of exercises, complete with additional information like estimated calorie burn and more.

  4. Muscle Group Specific Exercises: Each muscle group comes with its own dedicated set of exercises, allowing for targeted and effective training alongside specific workout programs for general health.

Personalized Workouts Animation

๐Ÿ‘ฃ Step Tracker

Accurately tracking your steps, distance, and calories burned, visualized in clear daily and weekly charts.

  1. Sensor-Based Tracking: Utilizes your device's internal sensors for precise step counting.

  2. Progress Charts: Offers intuitive daily and weekly charts to visualize your step activity and progress over time.

  3. Calorie Expenditure: Provides an estimate of the calories you've burned through your steps.

  4. Distance Measurement: Automatically calculates the distance you've walked or run.

Step Tracker Animation

ย ๐Ÿ”ฅ Live Workout Sessions

Join our workout sessions for instructor-led guidance and an immersive fitness experience.

  1. Interactive workout Sessions: Engage in live workout sessions where you can follow along with an instructor's video, guiding you through each exercise.

    • (Due to Iran's policy of Censoring the YouTube platform, this feature will be impacted with IPs from this region)
Live Workout Sessions Animation

๐Ÿง ย AI Coach

Your intelligent AI Coach, providing personalized advice and plans across all aspects of health, fitness, and nutrition to guide your wellness journey

  1. Personalized Wellness Partner: Get smarter about your health with an AI that provides customized advice and actionable plans for fitness, food, and overall well-being.
  2. Your Fitness Q&A Hub: Instantly get answers to all your fitness questions, empowering you with the knowledge to make informed decisions and overcome challenges.
  3. Multilanguage Model: Ask your question in 40 languages and your AI fitness coach will answer.
  • Out of Region / Forbidden Access (HTTP 403): This error, means API access from your current geographic location might be restricted. The Gemini API has specific supported regions. If you encounter this, consider using a VPN or an alternative access method if allowed by Google's terms of service.

  • Network Error (HTTP 499): Often occurs if your device loses internet connectivity.

  • Invalid Input ( HTTP 400): If your question is malformed or violates input requirements, you might receive this.

  • API Rate Limit Exceeded (HTTP 429): This error means you've exceeded the allowed number of messages. Please wait a moment.

Live Workout Sessions Animation

๐Ÿ“ˆ Fitness Overview and Insights

Track your key health metrics and gain valuable insights into your progress with our dynamic fitness overview

  1. Your Metric Display: View your current weight, recommended healthy weight, and BMI at a glance.

  2. Dynamic BMI Card: Your BMI card updates automatically and instantly whenever you log a change in your current weight, keeping your insights always current.

Fitness Overview and Insights Animation

๐ŸŒ™ Theme customization

Personalize your visual experience and reduce eye strain with FitCore's theme customization option.

  1. Dark mode: Switch to a sleek, eye-friendly dark theme that's perfect for low-light environments and extended use.

Theme Customization Animation

โš™๏ธ Tech Stack & Libraries

  • Compatible with devices running Android 7.0 and newer(Minimum SDK level 24).
  • Fully implemented using Jetpack Compose
  • Coroutines and Flow for asynchronous streams.
  • Sensors in Android: Built-in sensors that measure motion, orientation, and various environmental conditions.
  • Firebase:
    • Authentication: Secure user sign-up, sign-in (including forgot password) for seamless onboarding.
    • Crashlytics: Real-time crash reporting and insightful error analysis to maintain app stability.
    • DebugView: For real-time event monitoring during development.
  • Initial Data Population: Efficiently prepopulates the Room database with initial data using a pre-packaged JSON strategy
  • Google Gemini: Powers the AI-driven personalized fitness coaching
  • Jetpack
    • Compose: Androidโ€™s modern toolkit for building native UI.
    • ViewModel: UI related data holder and lifecycle aware.
    • Type Safe Compose Navigation: For navigating screens and Type Safety to create more robust, reliable, and maintainable navigation system , enabling Compile-Time Error Detection.
    • Room: Constructs Database by providing an abstraction layer over SQLite to allow fluent database access.
    • Hilt: Dependency Injection.
    • Compose animation: Jetpack Compose animations.
    • WorkManager: To achieve background processing with scheduling.
  • Figma: A cloud-based, collaborative design tool primarily used for creating user interfaces (UIs) and interactive prototypes.
  • Material 3: Google's latest design system for building modern, personalized, and accessible app UIs.
  • Coil: image loading library for Android.
  • Retrofit2: Construct the REST APIs and paging network data.
  • ksp: Kotlin Symbol Processing API.

๐Ÿ›๏ธ Architecture

Fitcore is built according to Google's official architecture guidance.

Architecture

The overall architecture is composed of two layers; the UI Layer and the data layer. Each layer has dedicated components, and they each have different responsibilities. The arrow means the component has a dependency on the target component following its direction.

Architecture Overview

overview

Each layer has different responsibilities below. Basically, they follow unidirectional event/data flow.

UI Layer

UI Layer

The UI Layer consists of UI elements like buttons, menus, and tabs that could interact with users and ViewModel that holds app states and restores data when configuration changes.

Data Layer

DataLayer

This data layer is structured around a central Repository, which serves as the single source of truth for the application's data. Its primary functionality involves abstracting data operations, intelligently fetching and managing information from either the Network (for remote data) or the Local Database (Room). Data retrieved from the network can seamlessly update the local database(mostly authentication), ensuring data persistence, while the local database is also pre-populated via initial data seeding from JSON. The Repository then provides a unified data stream to higher architectural layers, enabling efficient and consistent access to all necessary information, thereby decoupling business logic from underlying data sources.


๐Ÿ”’ Security Measures

The app may limit functionality or self-terminate if it detects (Experimental):

  • Rooted Devices: Presence of root access or related tools.
  • Active Debugging: Attempts to debug or inspect the app's runtime
  • App Tampering: Modifications to the app's code or resources
  • Other security layers include:
    • Code Obfuscation: The app's code is obfuscated to make reverse engineering significantly more difficult.
    • Secured API Keys & Strings: Sensitive data like API keys and critical strings are indirectly implemented and not easily extractable.

In Development โšก

  • User achievement system (part of gamification strategy)
  • Display upcoming workouts in the live workout sessions screen

๐Ÿค Collaboration or business opportunity?

Email me at: [email protected] or contact me on LinkedIn


Poster

FItCoreCover

License

Copyright 2025 Mohammad Khosravi

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.