AI-powered Arabic fitness companion built with Kotlin, Jetpack Compose, Clean Architecture, Room, Hilt, and OpenAI.
GymTech is a modern Android fitness application designed for Arabic-speaking users. It helps users plan workouts, track nutrition, monitor progress, calculate ideal weight, and interact with an AI fitness coach.
GymTech is a fully Arabic-localized Android fitness app that combines workout planning, nutrition tracking, progress monitoring, reminders, and AI assistance in one mobile experience.
The app is designed to help users build better fitness habits through a clean interface, personalized tools, and an AI-powered fitness chat experience.
| Feature | Description |
|---|---|
| AI Workout Planner | Generate workout plans using OpenAI |
| AI Fitness Chat | Chat with an AI fitness assistant |
| Nutrition Tracker | Track meals, calories, and nutrition |
| Progress Dashboard | Monitor user progress visually |
| Ideal Weight Calculator | Calculate ideal weight based on user data |
| Smart Reminders | Workout and hydration reminders using WorkManager |
| Arabic UI | Arabic-first interface for Arabic-speaking users |
| English Support | Supports Arabic and English UI |
| Dark / Light Theme | Material 3 dark and light mode support |
| Local Storage | Saves user data locally using Room and DataStore |
| Category | Technology |
|---|---|
| Language | Kotlin 2.0.21 |
| UI | Jetpack Compose, Material 3 |
| Architecture | MVVM + Clean Architecture |
| Dependency Injection | Hilt |
| Local Database | Room |
| Networking | Retrofit, OkHttp, Gson |
| Async | Kotlin Coroutines, Flow |
| Background Tasks | WorkManager |
| Image Loading | Coil |
| Animations | Lottie |
| Persistence | DataStore Preferences |
| AI | OpenAI Chat Completions API |
| Build System | Gradle Kotlin DSL |
GymTech/
βββ app/
β βββ build.gradle.kts
β βββ src/main/kotlin/com/gymtech/app/
β βββ data/ # Repositories, Room database, Retrofit APIs
β βββ domain/ # Models and repository interfaces
β βββ di/ # Hilt modules
β βββ presentation/ # Compose screens and ViewModels
β β βββ auth/ # Register and ideal weight screens
β β βββ chat/ # AI chat
β β βββ dashboard/ # Home dashboard
β β βββ nutrition/ # Nutrition tracking
β β βββ progress/ # Progress charts
β β βββ workout/ # AI-generated workouts
β β βββ settings/ # Language, theme, and profile
β β βββ admin/ # Admin tools
β βββ ui/theme/ # Material 3 theme
β βββ util/ # Helper classes
β βββ worker/ # WorkManager workers
βββ gradle/libs.versions.toml
βββ build.gradle.kts
βββ settings.gradle.kts
βββ local.properties # Not committed| Requirement | Version |
|---|---|
| Android Studio | Ladybug 2024.2.1 or newer |
| JDK | 17 |
| Android SDK | API 35 |
| Minimum Android Version | API 26+ |
| OpenAI API Key | Required for AI features |
git clone https://github.com/bilalcodes1/GymTech.git
cd GymTechOpen the project in Android Studio and wait for Gradle sync to finish.
For AI features, add your OpenAI API key to local.properties.
OPENAI_API_KEY=your_openai_api_key_here
OPENAI_BASE_URL=https://api.openai.com/Then sync the project:
File β Sync Project with Gradle FilesDo not commit
local.propertiesto GitHub. It should stay private on your machine.
Connect an Android device or start an emulator, then press:
Run βΆ./gradlew assembleDebugOutput:
app/build/outputs/apk/debug/app-debug.apk./gradlew installDebug./gradlew testOpen the project once in Android Studio. Android Studio should automatically create local.properties with the correct sdk.dir.
Make sure Android Studio is using JDK 17:
Settings β Build Tools β Gradle β Gradle JDKThis usually means the OpenAI API key is missing, invalid, or revoked.
Check your local.properties file:
OPENAI_API_KEY=your_openai_api_key_here
OPENAI_BASE_URL=https://api.openai.com/Then sync Gradle again.
Make sure dependencies are synced correctly and that the project is using the correct Gradle JDK.
- Do not commit API keys to GitHub.
- Store secrets in
local.properties. - Keep
local.propertiesinside.gitignore. - Do not log
BuildConfig.OPENAI_API_KEY. - For public release, use a secure backend instead of calling AI APIs directly from the app.
- Release builds should use a real signing keystore, not the debug keystore.
GymTech is a university/personal Android project focused on Arabic fitness assistance and AI-powered workout support.
Implemented areas include:
- Arabic Android UI
- AI fitness chat
- Workout planning
- Nutrition tracking
- Progress screens
- Ideal weight calculation
- Local database structure
- Reminder system
- Settings and theme support
- Improve AI prompt quality
- Add more workout templates
- Add advanced progress charts
- Add cloud sync
- Add user authentication
- Add exercise media library
- Add meal database
- Add exportable progress reports
- Improve offline mode
Bilal Zamil Ahmed Computer Science Student University of Anbar
GitHub: @bilalcodes1
Private project β All rights reserved Β© 2026 Bilal Zamil Ahmed.