-
Notifications
You must be signed in to change notification settings - Fork 0
App
Parent section: Core Components
SDACCompanion is the official companion app track for SDAC. The app must use the existing Flask dashboard/backend as the source of truth for login, server selection, submissions, guessing games, roles, theme/layout settings, and release/update views.
Current scaffold:
apps/sdac-official-app
Current app name:
SDACCompanion
Default backend:
https://freethefishies.us.to
The current scaffold uses a web-wrapper style approach. Future updates should remove that approach and move to the SDK app approach.
The app should preserve:
- Discord OAuth login.
- Server selection.
- Cross-server access rules.
- Submission viewing and user submission views.
- Guessing game views.
- Admin role restrictions.
- Theme and layout settings.
- Release/update views.
- API-backed state from the Flask backend.
Current app bootstrap endpoint:
GET /api/app/bootstrap
Existing API endpoints that can support app views:
GET /api/statsGET /api/serversGET /api/leaderboardGET /api/server/<guild_id>
Future SDK app work should add dedicated JSON endpoints instead of scraping dashboard HTML.
The Android project lives under the app scaffold. Common outputs:
- Debug APK:
android/app/build/outputs/apk/debug/app-debug.apk - Release AAB:
android/app/build/outputs/bundle/release/app-release.aab
Android builds may require the Android Studio bundled JBR if the system Java version is too new for Gradle.
Release builds need a private keystore and signing properties. Do not commit:
- Keystore files.
android/keystore.properties- Store passwords.
- Key passwords.
Document only the process, not the values.
The app should support:
- Store install through a signed
.aabor store-managed package. - SDK/embedded app install path when the SDK app is implemented.
-
App update- app-only changes. -
Bot and App update- app changes that also require backend, dashboard, bot, or release changes.
Move from the web-wrapper app to the SDK app. Keep the Flask backend as the source of truth, but build app screens and integrations through the SDK app path.