Skip to content
Baytae Tistear edited this page Jul 7, 2026 · 3 revisions

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 State

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.

Required App Behavior

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.

Backend API

Current app bootstrap endpoint:

GET /api/app/bootstrap

Existing API endpoints that can support app views:

  • GET /api/stats
  • GET /api/servers
  • GET /api/leaderboard
  • GET /api/server/<guild_id>

Future SDK app work should add dedicated JSON endpoints instead of scraping dashboard HTML.

Android Builds

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.

Signing

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.

Store Install And SDK Install

The app should support:

  • Store install through a signed .aab or store-managed package.
  • SDK/embedded app install path when the SDK app is implemented.

Update Scope

  • App update - app-only changes.
  • Bot and App update - app changes that also require backend, dashboard, bot, or release changes.

Future Direction

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.

Clone this wiki locally