A comprehensive Android fitness application for gym and home workouts, built with Java + XML and powered by Firebase.
FitAI is a mobile app designed to help users manage workouts, nutrition habits, progress tracking, and gym engagement in one place.
It includes:
- User workflows for workout execution, scheduling, meal planning, hydration/sleep/activity tracking, and profile progress.
- Admin workflows for user management, workout and meal management, and subscription-related operations.
- Authentication and onboarding flow
- Profile setup with personal fitness data
- Workout plans with day-wise structure
- Exercise execution with timers and rest flow
- Workout completion tracking and progress screens
- Activity, sleep, and water-intake logging
- Nutrition and meal planning modules
- Progress photo tracking
- Notifications and reminders
- Admin dashboard with quick statistics
- User CRUD operations
- Workout plan creation and management
- Meal management
- Subscription/member management
- Ability to inspect user progress
- Language: Java
- UI: XML layouts (Android Views)
- Architecture Style: Activity-based native Android app
- Database/Backend: Firebase Authentication, Firestore, Firebase Storage
- Local Storage: SQLite (
LocalDatabaseHelper) - Image Handling: Glide + uCrop
- Build System: Gradle (Android)
FitAI/
├── app/
│ ├── src/main/java/com/fitai/gym/ # Java source files
│ ├── src/main/res/ # XML layouts, drawables, values
│ └── build.gradle # App module dependencies/config
├── build.gradle # Root Gradle configuration
├── settings.gradle # Module settings
└── README.md
- Android Studio (latest stable recommended)
- JDK 17
- Firebase project
git clone https://github.com/sufiinamulhassan/FitAI.git
cd FitAIThis repository excludes google-services.json for security reasons.
- Create/select a Firebase project at Firebase Console
- Register Android app package:
com.fitai.gym - Download
google-services.json - Place it at:
app/google-services.json
- Authentication → Email/Password
- Cloud Firestore
- Storage
- Open the project in Android Studio
- Sync Gradle
- Run on emulator/device
Admin functionality is role-gated.
To enable admin for a user:
- Register/login with that account.
- Open Firestore
userscollection. - Find that user document by UID.
- Set
rolefield toadmin. - Restart app and open profile/admin sections.
This repository currently does not include a Gradle wrapper script (gradlew).
Use Android Studio (or local Gradle setup compatible with Android Gradle Plugin 8.2.2) for syncing and building.
- Add screenshots/GIFs for major flows
- Add unit/instrumentation tests
- Add CI workflow with Android build/test checks
- Improve role/security rules documentation for Firebase
Contributions are welcome through issues and pull requests.
This project is licensed under the MIT License. See LICENSE.md.
Made by Sufi Inam Ul Hassan