Skip to content

tothKarolyDavid/Physiquinator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

266 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Physiquinator

.NET MAUI Blazor SQLite License Platform GitHub Release

A cross-platform workout tracking app built with .NET MAUI and Blazor Hybrid. Features rest timers, real-time progress tracking, comprehensive workout history, user profiles, and workout plan management.

DownloadFeaturesTech StackGetting Started


Preview

Live workout · Plans home · Settings

Active workout with rest timer    Home dashboard and plan list    Settings with appearance and JSON backup


Activity history · Session summary · Exercise detail

Workout history with activity grid    Completed session summary    Per-exercise session history


Create plan · Edit plan · Log set

Create a new workout plan    Edit workout plan exercises    Log a workout set


Download & Install

Available Builds

Latest Release: GitHub Release

Platform Package Size Requirements
Android Physiquinator-Android.apk ~30 MB Android 7.0+
Windows Physiquinator-Windows.zip ~62 MB .NET 10 Desktop Runtime*

*.NET 10 Desktop Runtime is free from Microsoft and installs in ~5 minutes (one-time setup)
Download: https://dotnet.microsoft.com/download/dotnet/10.0

Windows Users: See WINDOWS-INSTALL.md for installation instructions and troubleshooting.


Option 1: Using Docker (Recommended for Android - No Android SDK required)

# Build Android APK
docker build -t physiquinator-android -f Dockerfile.android .
docker create --name temp physiquinator-android
docker cp temp:/app/output/com.companyname.physiquinator-Signed.apk ./Physiquinator.apk
docker rm temp

Option 2: Build Windows Locally

# Build Windows application
dotnet publish Physiquinator.csproj `
  -f net10.0-windows10.0.19041.0 `
  -c Release `
  -p:WindowsPackageType=None `
  -p:SelfContained=false `
  -p:PublishTrimmed=false `
  -o ./artifacts/windows

# Run the app
./artifacts/windows/Physiquinator.exe

Option 3: Using .NET SDK (All platforms)

# Android (requires Android SDK)
dotnet build -t:Run -f net10.0-android

# Windows  
dotnet build -t:Run -f net10.0-windows10.0.19041.0

# iOS (Mac only, requires Xcode)
dotnet build -t:Run -f net10.0-ios

See Docker Builds or Getting Started for detailed instructions.

Installation Instructions

Android:

  1. Enable "Install from Unknown Sources" in SettingsSecurity
  2. Transfer the APK to your device
  3. Open the APK file and tap Install
  4. Launch Physiquinator and start tracking!

Windows:

  1. Extract the ZIP file
  2. Run Physiquinator.exe
  3. No installation required - runs standalone!
  4. Note: Requires .NET 10 Runtime (or use published version with runtime included)

Tip: The app includes sample workout plans to get you started immediately!


Features

Workout Plan Management

  • Custom Workout Plans - Design personalized routines with unlimited exercises
  • Flexible Configuration - Set rest intervals and set counts per exercise
  • Quick Edit - Modify plans anytime to match your progress
  • One-Tap Start - Jump directly into workouts from the home screen

Smart Rest Timer

  • Visual Countdown - Large, easy-to-read timer display
  • Haptic Feedback - Phone vibrates when rest time ends (mobile)
  • Audio Notifications - Audible beep when rest is complete
  • Animation - Green glow indicates rest completion
  • Full Control - Pause, resume, reset, or skip rest periods

Live Progress Tracking

  • Real-Time Updates - See completed vs remaining sets instantly
  • Progress Bars - Visual representation of workout completion
  • Exercise Grouping - Completed and upcoming exercises clearly separated
  • In-Workout Set Log Editing - Granular tracking of rep count and weight/metrics for each set
  • Undo Actions - Quick undo toast to revert accidental set completions
  • Mobile-Optimized - Upcoming exercises shown first on small screens

Workout Completion Celebration

  • Animated Trophy - Bouncing, rotating trophy icon
  • Victory Sound - Ascending musical tones
  • Haptic Pattern - Celebratory vibration sequence
  • Glowing Effect - Pulsing green glow animation

Workout History & Analytics

  • Activity Heatmap - Visual GitHub-style contribution grid for your workout consistency
  • Exercise Progress - Per-exercise chart for tracking performance progression over time
  • Session History - Detailed review of completed sessions and set logs

User Profiles

  • Multi-User Support - Isolated profiles with separate plans and workout histories
  • Easy Switching - Quickly switch between profiles on a single device

Data Management

  • Local SQLite Storage - Fast, offline-first data persistence
  • Export to JSON - Share plans across devices or back them up
  • Import Plans - Load workout plans from JSON files
  • Bulk Export - Export all plans at once for backup
  • History Backup - Export and import workout session history, merging by session and set ID
  • Demo Data Seeding - Automatically populate demo data to explore the app's features right after installation

Tech Stack

Core Technologies

UI & Styling

  • MudBlazor - Material design component library for Blazor
  • Custom CSS Animations - Smooth, modern UI effects
  • Dark Theme - Eye-friendly design with gradient accents

Features & APIs

  • MAUI Essentials - File picker, share, vibration APIs
  • Wall-clock rest countdown - Driven by Blazor + JavaScript setTimeout (single in-flight bridge calls); optional scheduled local notifications on Android/iOS when rest ends
  • Web Audio API - Optional in-app beeps (primed on user gesture for mobile WebViews)

DevOps & CI/CD

  • GitHub Actions - Automated build and release pipeline
  • Multi-Platform Builds - Android APK and Windows executables
  • Automated Releases - Tag-based release creation

Getting Started

Prerequisites

Quick Start

# Clone the repository
git clone https://github.com/tothKarolyDavid/Physiquinator.git
cd Physiquinator

# Restore dependencies
dotnet restore

# Run on Windows
dotnet build -t:Run -f net10.0-windows10.0.19041.0

# Run on Android (device/emulator)
dotnet build -t:Run -f net10.0-android

# Run on iOS (Mac only)
dotnet build -t:Run -f net10.0-ios

Build Configurations

Debug (Fast Development)

  • Shared runtime for quick deployment
  • No AOT compilation
  • Fast wireless debugging on Android

Release (Optimized Performance)

  • Full linking and trimming
  • AOT compilation enabled
  • App bundle (AAB) format for Android
  • Self-contained Windows build

Docker Builds

Build Android APK using Docker (no Android SDK setup required):

# Build and extract APK
docker build -t physiquinator-android -f Dockerfile.android .
docker create --name temp physiquinator-android
docker cp temp:/app/output/com.companyname.physiquinator-Signed.apk ./Physiquinator.apk
docker rm temp

See DOCKER.md for complete Docker setup and troubleshooting.


Key Design Decisions

Why .NET MAUI + Blazor Hybrid?

  • Single Codebase - Write once, run everywhere (Android, iOS, Windows, macOS)
  • Web Skills - Use Blazor/HTML/CSS for UI while maintaining native performance
  • Native APIs - Full access to platform features (vibration, file system, etc.)
  • Familiar Stack - Leverages existing .NET and web development knowledge

Why SQLite?

  • Offline-First - Works without internet connection
  • Fast - Excellent performance for local queries
  • Cross-Platform - Same database file format across all platforms
  • Zero Configuration - No server setup required

Why MudBlazor?

  • Rapid Development - Rich set of pre-built, customizable Material Design components
  • Consistent Design - Predictable, professional UI patterns that look great out of the box
  • Native Blazor Feel - Written entirely in C# without JavaScript dependencies, fitting perfectly into the Blazor Hybrid model

About

Cross-platform fitness application built with .NET MAUI and Blazor Hybrid, featuring SQLite storage, intelligent timers, and real-time progress tracking.

Topics

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Packages

 
 
 

Contributors