No description
- Kotlin 88.1%
- Go 10%
- Shell 1.4%
- Dockerfile 0.4%
| .forgejo/workflows | ||
| .husky | ||
| app | ||
| backend | ||
| gradle/wrapper | ||
| shared | ||
| .gitignore | ||
| build.gradle.kts | ||
| commitlint.config.js | ||
| deploy.sh | ||
| DEPLOYMENT.md | ||
| docker-compose.yml | ||
| DOKUMENTATION.md | ||
| example.png | ||
| gradlew | ||
| INSTALL.md | ||
| log | ||
| log.png | ||
| log2.png | ||
| package-lock.json | ||
| package.json | ||
| PORTING_PLAN.md | ||
| README.md | ||
| settings.gradle.kts | ||
PushBattles
PushBattles is a gamified fitness application that transforms pushups and planks into epic boss battles. Use your smartphone camera to automatically count repetitions and defeat monsters through physical exertion.
Features
- AI Tracking: Automatic detection of pushups and planks via MediaPipe Pose Detection.
- Boss Battles: Your exercises reduce the boss's HP. Defeat them to level up.
- Streak System: Maintain your daily series for pushups and planks by defeating at least one boss every day.
- Leaderboard: Compete with other players worldwide to achieve the highest score and the longest streak.
- Remote Balancing: Adjust game values such as XP, damage, and difficulty live via a central configuration file on the server.
- History: Track your progress and view records of defeated bosses.
Tech Stack
Frontend (Mobile App)
- Language: Kotlin
- UI: Jetpack Compose (Material 3)
- AI/ML: Google MediaPipe Pose Landmarker
- Database: Room SQLite
- Networking: Ktor Client / Retrofit
Backend (Server)
- Language: Go (Golang)
- Framework: Gin Gonic
- Database: SQLite (via sqlx)
- Deployment: Docker and Docker Compose
Installation
1. Start Backend (Docker)
The backend runs in a Docker container and uses a volume for configuration.
cd backend
docker-compose up -d
2. Adjust Balancing
You can modify the game values in backend/config.json. Restart the backend afterwards:
docker-compose restart pushbattles-backend
3. Android Application
- Open the project in Android Studio.
- In the app settings, enter your server IP address (Default for emulator: http://10.0.2.2:8080).
- Build and run the application on your smartphone or emulator.
Roadmap
- Migration to Kotlin Multiplatform (KMP) for iOS support.
- Full integration of Ktor for cross-platform networking.
- Enhanced boss animations and sound effects.
License
This project is licensed under the MIT License.