Skip to content

Add .NET MAUI Android personal fitness tracker app with Gemini AI integration#1

Draft
Copilot wants to merge 2 commits intomasterfrom
copilot/add-personal-trainer-app
Draft

Add .NET MAUI Android personal fitness tracker app with Gemini AI integration#1
Copilot wants to merge 2 commits intomasterfrom
copilot/add-personal-trainer-app

Conversation

Copy link
Copy Markdown

Copilot AI commented Mar 17, 2026

Implements the FitnessTracker app from scratch — a personal trainer/assistant built with .NET MAUI targeting Android, with Google Gemini AI, Strava import, and progressive overload workout programming.

Project Structure

FitnessTracker/
├── Models/          # Workout, Exercise, Activity, UserProfile, ChatMessage, EquipmentType
├── Services/        # DatabaseService, GeminiService, StravaService, ProgressiveOverloadService
├── ViewModels/      # 11 ViewModels using CommunityToolkit.Mvvm (MVVM pattern)
├── Views/           # 11 XAML pages (Shell tab navigation)
└── Converters/      # ActivityTypeToIcon, EquipmentTypeToIcon, MessageRole*, etc.

Key Features

  • Workout tracking — log exercises with sets/reps/weight; mark complete; save as reusable templates
  • Equipment type — per-exercise EquipmentType enum: Barbell, Dumbbell, Kettlebell, CableMachine, Bodyweight, etc.
  • Progressive overloadProgressiveOverloadService auto-increments reps until threshold then bumps weight by 2.5kg; AI path via Gemini returns structured JSON suggestion
  • Google Gemini (Mscc.GenerativeAI) — chat assistant, AI workout suggestions (JSON-mode), per-exercise form/technique advice; API key stored in user profile
  • Activity tracking — manual entry (running, swimming, cycling, etc.) with distance, duration, HR, elevation; Strava OAuth import via REST
  • Exercise library — 30+ seeded exercises across all muscle groups; form image URL field; AI form tips on demand
  • Progress dashboard — active streak calculation, 8-week weekly bar chart, aggregate distance/calories

Stack

Concern Library
UI .NET MAUI net10.0-android, Shell + TabBar
MVVM CommunityToolkit.Mvvm 8.4.0
Persistence sqlite-net-pcl 1.9.172 (SQLite)
AI Mscc.GenerativeAI 3.1.0
DI MAUI built-in Microsoft.Extensions.DependencyInjection

Notes

  • GeminiService uses a using AppChatMessage = FitnessTracker.Models.ChatMessage alias to resolve ambiguity with Mscc.GenerativeAI.Types.ChatMessage
  • Strava token refresh is stored back to UserProfile in SQLite; OAuth flow opens system browser to the Strava authorize URL
  • ProgressiveOverloadService is the offline fallback when no Gemini API key is configured
Original prompt

This app will be my personal trainer/assistant in my fitness journey.

I need it to track workouts, suggest new workouts using a progressive overload strategy, track other activities like running and swimming where I feed in the stats either manually or imported from other external applications/services like strava for example.

I need it to integrate with google Gemini.

It will be a mobile app developed in C# with MAUI and must support running on android, ios may be added at a later date.

I want to be able to specify if I am using free weights or cable machines.

Ideally an image showing the correct form for the exercise as well.


📱 Kick off Copilot coding agent tasks wherever you are with GitHub Mobile, available on iOS and Android.

Copilot AI changed the title [WIP] Add personal trainer mobile app with workout tracking Add .NET MAUI Android personal fitness tracker app with Gemini AI integration Mar 17, 2026
Copilot AI requested a review from StuartFerguson March 17, 2026 12:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants