A fun, satirical game for freelancers and business owners about identifying bad clients!
Client Whack-a-Mole tests your ability to spot red flags and dismiss problematic client requests while appreciating good professional clients. Perfect for anyone in the service industry.
- Click bad clients (brown moles) with terrible requests
- Avoid good clients (green moles) who are professional
- Watch out for trap faces that cost you lives
- Progressive difficulty with 4 levels
- 3-strike rule keeps you on your toes
- Android Studio or Android SDK tools
- JDK 8 or higher
- Gradle 8.0+
-
Using Android Studio:
- Open Android Studio
- Select "Open an existing project"
- Navigate to this directory
- Let Android Studio sync Gradle
- Build > Build Bundle(s) / APK(s) > Build APK(s)
-
Using Command Line:
# Build debug APK ./gradlew assembleDebug # Build release APK (unsigned) ./gradlew assembleRelease
-
Find your APK:
- Debug:
app/build/outputs/apk/debug/app-debug.apk - Release:
app/build/outputs/apk/release/app-release-unsigned.apk
- Debug:
For F-Droid submission, you'll need to sign your APK:
-
Generate a keystore:
keytool -genkey -v -keystore my-release-key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias my-key-alias
-
Sign the APK:
jarsigner -verbose -sigalg SHA256withRSA -digestalg SHA-256 -keystore my-release-key.jks app/build/outputs/apk/release/app-release-unsigned.apk my-key-alias
-
Align the APK:
zipalign -v 4 app/build/outputs/apk/release/app-release-unsigned.apk client-whack-a-mole.apk
- Host your code on a public Git repository (GitHub, GitLab, etc.)
- Add a GPL-3.0 or compatible open-source license
- Ensure no proprietary dependencies or libraries
-
Prepare Your Repository:
# Initialize git if not already done git init git add . git commit -m "Initial commit - Client Whack-a-Mole v1.0" # Create a tag for the version git tag -a v1.0 -m "Version 1.0" # Push to your remote repository git remote add origin https://github.com/yourusername/client-whack-a-mole.git git push -u origin main git push --tags
-
Add GPL-3.0 License:
- Copy the GPL-3.0 license text to a file named
LICENSEin your repo root - You can get it from: https://www.gnu.org/licenses/gpl-3.0.txt
- Copy the GPL-3.0 license text to a file named
-
Update metadata.yml:
- Edit the
metadata.ymlfile in this directory - Replace placeholder URLs with your actual repository URLs
- Update contact information
- Edit the
-
Submit to F-Droid:
- Fork the F-Droid data repository: https://gitlab.com/fdroid/fdroiddata
- Add your
metadata.ymltometadata/com.refinedwebsolutions.clientwhackamole.yml - Create a merge request with your app metadata
- F-Droid maintainers will review and build your app
If you prefer not to submit directly, you can request packaging:
- Go to: https://gitlab.com/fdroid/rfp/-/issues
- Create a new issue requesting your app be added
- Provide your repository URL and description
Test your APK thoroughly:
# Install on connected device/emulator
adb install app/build/outputs/apk/debug/app-debug.apk
# View logs
adb logcat | grep ClientWhackAMoleBefore submitting, ensure:
- Source code is publicly available
- Open-source license (GPL-3.0) is included
- No proprietary libraries or SDKs
- No tracking or analytics
- No ads
- App builds reproducibly from source
- metadata.yml is complete and accurate
- Version tags match versionCode and versionName
# Clear Gradle cache
./gradlew clean
# Or delete .gradle directory
rm -rf .gradle/- Ensure
index.htmlis inapp/src/main/assets/ - Check Android permissions in AndroidManifest.xml
- Test on different Android versions (minimum API 21)
This project is licensed under GPL-3.0-or-later. See LICENSE file for details.
Refined Web Solutions
- Website: https://refinedwebsolutions.com
- Email: contact@refinedwebsolutions.com
Created by Charles / Refined Web Solutions