The supplied project is an Android client. It does not include a deployable backend.
Production deployment therefore has two separate tracks:
Do not expose a private database directly to the Android client.
A production backend should provide:
The Android client should communicate only with the API.
The current source hard-codes the Retrofit base URL in AppModule.kt.
Before release, replace this design with a build-time/environment-specific configuration such as:
debug -> staging API
release -> production API
Do not silently ship a placeholder domain.
The Gradle file reads:
KEYSTORE_PATH
STORE_PASSWORD
KEY_PASSWORD
Use a dedicated release keystore stored outside source control.
Recommended process:
.jks, passwords, or recovery material../gradlew clean
./gradlew test
./gradlew assembleRelease
Expected output:
app/build/outputs/apk/release/app-release.apk
For Play distribution, prefer an Android App Bundle:
./gradlew bundleRelease
The supplied workflow currently builds a debug APK and uploads it as an artifact.
Before production CI/CD:
Recommended sequence:
Commit
-> CI
-> Unit tests
-> Static/security checks
-> Staging backend
-> QA
-> Release candidate
-> Production backend
-> Signed release
-> Controlled rollout
-> Monitoring
Keep:
Never perform destructive database changes without a tested recovery plan.