Android app for running chess tournaments: Swiss (FIDE C.04.1 style) and Round Robin pairings, standings, tiebreaks, backup/restore, optional web publishing, and Google Play Billing for Pro features.
- JDK 17
- Android SDK (API 35 compile / target)
- Clone the repo.
- Copy
local.properties.exampletolocal.properties. - Set
sdk.dirto your Android SDK path. - Optional: add Firebase keys for “Publish to web” (see
web/andFirebaseConfig.kt). - Optional: configure release signing in
local.properties(keystore is not in the repo). - Premium / Remote Config: Premium is disabled by default via Firebase Remote Config (
premium_required= false). To enable premium later: add your project’sgoogle-services.jsontoapp/, add the Android app in Firebase Console, create thepremium_requiredparameter in Remote Config and set it totrue.
./gradlew assembleDebugRelease bundle:
./gradlew bundleRelease./gradlew testDebugUnitTestIncludes simulation-based property tests for Swiss pairing (SwissPairingFideRulesTest).
Static site and Firebase rules live under web/. Deploy with the Firebase CLI as needed.
Use a new personal access token (never reuse a token that was pasted in chat). Install gh (brew install gh), then in your local terminal:
export GITHUB_TOKEN='ghp_...' # classic PAT with repo scope
./scripts/github-create-and-push.sh
# optional: ./scripts/github-create-and-push.sh my-repo-name
# optional: GITHUB_OWNER=otheruser ./scripts/github-create-and-push.shOr: gh auth login, then gh repo create Oziomajnr/chess-tournament-manager --public --source=. --remote=origin --push.
See repository license (add one if you publish publicly).