Skip to content

SmartRun is a cross-platform jogging fitness app that uses AI coaching to help runners train smarter, avoid overexertion, and build safe, sustainable running habits.

License

Notifications You must be signed in to change notification settings

EmmanuelDav/Smart-Run

Repository files navigation

Smart Run Logo

🏃 Smart Run

Smart Run (Smart Run Coach) is a cross-platform fitness application for Android and iOS designed to make outdoor running safer, smarter, and more adaptive.

The app combines real-time GPS tracking, performance metrics, and AI-assisted insights to help runners monitor distance, time, pace, speed, and calories burned during a run. Beyond basic tracking, Smart Run integrates Google Gemini AI as a virtual running coach, analyzing performance in real time to help prevent overexertion and encourage sustainable running habits.

💡 Why Smart Run?

Every year, millions of people decide to start running — motivated by fitness goals, New Year resolutions, or the desire for a healthier lifestyle. While motivation is powerful, it often comes without guidance.

Many runners push themselves too hard, ignore early signs of fatigue, or lack awareness of their physical limits, especially during outdoor runs. Most running apps focus on recording distance and time after the fact, but they rarely help runners understand how their body is responding during the run itself. This gap can lead to overexertion, poor recovery habits, and in extreme cases, serious health risks caused by pushing beyond safe limits.

Smart Run was built to explore a different approach: a running experience that doesn’t just track movement, but actively analyzes effort in real time. By combining live GPS data, performance metrics, and AI-powered analysis, Smart Run acts as a virtual running coach — helping runners pace themselves, recognize when to rest, and build safer, more sustainable running habits.

The long-term vision of Smart Run is to evolve beyond software-only insights by integrating with physical health sensors, such as heart-rate monitoring devices, to provide even deeper, real-time understanding of a runner’s condition and wellbeing.


Screencast

main.2.mp4

*📌 Demo note: This app relies on real GPS and device sensors. The demo was recorded on an emulator and does not reflect accurate distance, pace, or calorie tracking.
For the full experience, run Smart Run on a physical device.

How to run the project

⚠️ Use Physical Device for Better Experience

Prerequisites

To build for iOS/Android, use a macOS device with Android Studio, Xcode, JDK, and the KMP & Kotlin plugins installed—follow this setup guide first.

API Setup

1. Gemini API Key

Create a new Gemini API Key here. A default model is already selected.

2. Google Maps API Key

Go to the Google Cloud Console, create a project, and enable the Maps SDK for Android and Maps SDK for iOS. Create your API key under the Credentials section.

Local Configuration

Create a local.properties file in the root directory of the project and add your keys as follows:

geminiApiKey=your-gemini-api-key
googleMapAPiKey=your-google-maps-api-key

Features

🏃 Run Tracking

  • Start, pause, resume, and stop running sessions
  • Real-time distance and duration tracking
  • Current and average speed calculation
  • Current and average pace (min/km)
  • Background tracking for uninterrupted runs

🗺️ Route & Map Visualization

  • Live route tracking on native maps
  • Real-time polyline drawing of running routes
  • Color-coded route segments for pauses and resumes
  • Start, current location, and finish markers
  • Auto-follow camera during active runs

📊 Performance & Health Metrics

  • Real-time calorie burn estimation
  • MET-based calorie calculation
  • Session summary after each run
  • Clear visual display of key metrics during runs

🤖 Smart Run Coach

  • AI-assisted analysis of running performance
  • Pace and rest suggestions during long or intense runs
  • Detection of fatigue trends based on run data
  • Post-run insights to help improve future sessions

Library dependencies:

Library Purpose
Kotlin Multiplatform Core technology for sharing business logic across platforms.
Compose Multiplatform Shared UI framework for building Android and iOS interfaces.
Gemini SDK KMP wrapper for integrating Google’s Generative AI.
Koin Pragmatic lightweight dependency injection for KMP.
Room / SQLite Local database and low-level storage with multiplatform support.
Kotlinx Serialization Type-safe JSON parsing and data serialization.
Kotlinx DateTime Multiplatform library for date and time manipulation.
DataStore Modern data storage solution for simple key-value pairs.
Napier Logger library for KMP (Android, iOS, JVM, JS).
BuildKonfig Injects local.properties secrets into shared code safely.
Moko Permissions Multiplatform permission handling for notification, location, etc.
KMP Maps Native implementation for Google Maps on Android and MapKit for iOS.
CMP Toast Simple library for showing Toast notifications in Compose.

License

This project is licensed under the MIT License.

About

SmartRun is a cross-platform jogging fitness app that uses AI coaching to help runners train smarter, avoid overexertion, and build safe, sustainable running habits.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published