Skip to content

Discord Integration

Nishanth S edited this page May 8, 2026 · 1 revision

Discord Integration (S.C.I.P.E.)

What Is Used

Teambuilder uses discord.js to manage the EPICS Discord bot and its server operations.

Primary code paths:

How It Is Used

Teambuilder uses Discord to automate project communication setup:

  • Starts and stops the Discord bot.
  • Creates or deletes project channels.
  • Assigns project roles to users.
  • Runs diagnostics to compare Discord state with the database.
  • Displays health, uptime, and error status in the UI.

Relevant API actions:

  • GET /api/discord/status
  • POST /api/discord/start
  • POST /api/discord/stop
  • POST /api/discord/restart
  • POST /api/discord/update-channels
  • POST /api/discord/delete-channels
  • POST /api/discord/delete-roles
  • POST /api/discord/assign-project-roles
  • GET /api/discord/diagnostics
  • GET /api/discord/project-roles

Why It Exists

Discord is used to automatically provision team communication spaces so staff do not need to create channels and roles manually each semester.

This keeps the Discord server synchronized with active projects and team membership in the database.

What Teambuilder Needs From Discord

  • Bot authentication and login
  • Guild access
  • Guild member lookup
  • Channel creation and deletion
  • Role creation, deletion, and assignment
  • Permission and diagnostics checks

Pages Involved

Data Dependencies

  • Project names and statuses determine which Discord channels and roles should exist.
  • Team membership determines role assignment.
  • Student Discord usernames come from the discord field on student records.

Notes

  • The bot can start even when credentials are missing in development, but production requires valid Discord credentials.
  • The UI is intended as an operations console for diagnostics and provisioning.

Clone this wiki locally