Skip to content

Dashboard

Baytae Tistear edited this page Jul 7, 2026 · 4 revisions

Dashboard

Parent section: Core Components

The dashboard is the Flask web interface for public viewing, user accounts, submissions, guessing games, admin tools, release management, server selection, theme editing, and layout editing.

For first-time dashboard setup, see Dashboard Setup.

Public Pages

Public pages should use the shared dashboard theme and sidebar shell where applicable:

  • / - main gallery/homepage.
  • /about - public bot landing page.
  • /setup-guide - public setup guide.
  • /servers - server list/visibility view.
  • /server/<guild_id> - server-scoped page.
  • /stats - public stats.
  • /guessing - guessing game page.
  • /achievements - achievement history.
  • /user/<user_id> - public user profile.
  • /report/<submission_id> - submission report flow.
  • /my-submissions and /me - current user's submissions/account view.

Filters should be grouped into dropdown/filter sections only on submissions pages and guessing pages where filtering is expected.

Accounts And OAuth

Regular users can log in with dashboard accounts or Discord OAuth. Discord OAuth is intended for normal user access and server scoping. Admin areas still require username/password admin login.

Important account pages:

  • /account/register
  • /account/login
  • /account/oauth/start
  • /account/oauth/callback
  • /account/server
  • /account/access
  • /account/discord/refresh
  • /account/logout
  • /account

OAuth setup requires environment variables, but never document real values in the wiki:

  • DISCORD_CLIENT_ID
  • DISCORD_CLIENT_SECRET
  • DISCORD_REDIRECT_URI

Admin Login

Admin pages require:

  • The admin key in the URL when required by the app.
  • A dashboard admin login.
  • A role high enough for the page.

Admin login pages:

  • /admin/login
  • /admin/logout
  • /admin/oauth/start
  • /admin/oauth/callback

Sidebar

The sidebar is the shared navigation shell. It should remain consistent across pages and replace old top navigation bars.

Sections are permission-scoped:

  • User - visible to all users.
  • Moderation - moderators and up.
  • Server Owner - server owners and up for the current server.
  • Bot Owner - bot owners only.
  • Cross Server - shows cross-server views when the user has access.

The menu button alignment is editable from the layout editor. Supported placements are:

  • Page Left - aligns with page content/sidebar padding.
  • Sidebar Edge - sits near the sidebar edge.
  • Viewport Left - stays at the left viewport edge.

Mobile behavior should keep the drawer usable and should not show duplicate top navigation.

Admin Overview

The admin overview should appear only in admin pages. It summarizes operational state such as:

  • User counts.
  • Submission totals, filterable by all time, year, month, week, and today.
  • Last server restart.
  • Last server backup.
  • Release state.
  • Health and warnings.
  • Storage and database status.

User Management

The Users admin page supports:

  • Viewing dashboard users.
  • Promoting users within role restrictions.
  • Banning users when the acting role is higher than the target role.
  • Locking users out of games, submissions, or both.
  • Assigning different roles on different servers.
  • Restricting admins to servers they belong to or are allowed to manage.

Bot Owner is the global highest role. Server Owner is scoped to a server.

Theme Editor

The Theme page lets owners change dashboard colors and background images. Theme settings should apply across all pages, not just admin pages.

Editable theme values include:

  • Primary color.
  • Secondary color.
  • Accent color.
  • Page background.
  • Panel/surface color.
  • Sidebar color.
  • Text color.
  • Muted text color.
  • Background image URL or upload.

Theme preview should affect only the owner preview/editor page until saved.

Layout Editor

The Layout page lets owners change site layout behavior. Current controls include:

  • Content width.
  • Sidebar width.
  • Card radius.
  • Panel padding.
  • Card grid minimum width.
  • Background image opacity.
  • Background position.
  • Dashboard density.
  • Menu button alignment.
  • Visual test environment with drag/drop item ordering.
  • Selected item properties for preview cards.

Layout changes should apply through saved configuration and the shared sidebar/theme injection.

Moderation And Content

Moderation dashboard areas include:

  • /admin/moderation - pending submissions, public reports, decisions.
  • /admin/submission/<id>/status - status changes.
  • /admin/submission/<id>/quarantine - quarantine controls.
  • /admin/media - orphaned, missing, suspicious, oversized, and lifecycle media controls.
  • /audit and /admin/audit - audit history.

Game Library And Seasons

Game dashboard areas include:

  • /admin/game-library - reusable game media, answers, aliases, prompts, categories, hints, packs, tags, notes, enable/disable controls, and CSV import.
  • /admin/seasons - guessing game seasons and leaderboard snapshots.
  • /admin/anime-activities - experimental anime activity management.

Polls

/admin/polls lets admins manage polls from the website. Poll changes should also work with Discord poll commands.

Releases And Production

Dashboard release/production tools include:

  • /admin/releases - official and experimental release visibility and notification testing.
  • /admin/maintenance - backups, release status, restore tests, checksums, rollback queueing, storage forecast, and health.
  • /admin/production-health - production health score.
  • /admin/install-doctor - doctor output and install checks.
  • /admin/optimization - performance presets, cache metrics, notification presets, queued maintenance, and watchdog status.
  • /admin/server-health - per-server setup, storage, backup, game, library, and achievement status.
  • /admin/jobs - long-running maintenance jobs.

API Endpoints

Public/lightweight endpoints include:

  • /api/stats
  • /api/servers
  • /api/leaderboard
  • /api/server/<guild_id>
  • /api/app/bootstrap

The app should use these or future API endpoints instead of scraping HTML.

Clone this wiki locally