EspañolContact

Capital CASC: a mock exam on Discord

Capital CASC is the Discord community of Psych Leaders, which prepares doctors for the CASC, the psychiatry clinical exam. I built the bot system that runs its mock exams and practice sessions there, with stations, timing and recordings just like the real exam.

The challenge «Make practice feel like the exam: same format, same clock, same pressure.»

Capital CASC: a mock exam on Discord

The video I made for Psych Leaders

I also made its promo video. It shows the system at work, from paired practice to the recording of each station.

Promo video (0:55)

What it does, part by part

Mock exam

An 8-station circuit, like the real one

  • Each station is a voice channel with its own bot, which announces every phase out loud.
  • Reading time, seven minutes per station and a synced change for everyone.
  • The bot moves each candidate to their next station, with nobody doing it by hand.
Reading time countdown of a Capital CASC station

Paired practice

Join a channel and practise

  • Joining the practice voice channel is enough: the bot pairs the first two who are waiting.
  • It moves them into a private room and sends each one a personal link.
  • Before, people had to move to another channel, invite and accept. Now it is a single step.
Two people paired in a private Discord practice room

Session room

A web page for each session

  • The link opens a page where each person says who they are and picks the reading time.
  • The station starts on its own, with its timer.
Web page of a Capital CASC practice session

Recordings

Every session is recorded

  • The bot records the station and sends each candidate the link to their recording.
  • With that recording, the candidate can submit the station to get it marked.
Bot message with the link to a station recording

How it is built

  • 13 coordinated bots

    One controller bot, eight station bots and a pool of practice bots. Discord only lets each bot sit in one voice channel per server, so every station has its own.

  • Synced voice and timing

    Voice announcements play at the same moment in every station, on the same clock.

  • Audio recording

    Each station records its audio with ffmpeg and the bot delivers the recording to the candidate.

  • Team web dashboard

    A password-protected dashboard: live status, who is in each station, emergency reconnect and the text of the bot’s messages.

  • discord.js and Node.js

    The bots’ code, with Discord’s voice library and an Express server for the dashboard.

  • On its own server

    It runs on a VPS, with a supervised process and HTTPS access to the dashboard.

Need a system like this?

Exams, classes, practice or any process your community repeats every week. Tell me yours and I will tell you what can be automated.