How I built a Covid-era communication solution for students on the Discord platform.

Kaveen Kumarasinghe
6 min readJan 8, 2021

If you enjoy reading this article, consider checking out my website at https://kaveenk.com for more interesting write-ups and things that I’ve done!

The service mentioned in this article is currently in use by over 5,000 University of Waterloo students, and even several professors for online instruction! You can learn more at the project repository!

How do we stay connected in these trying times?

This was the question I asked myself at the beginning of my Spring 2020 study term. The coronavirus was just ramping up, and every school in the province was frantically switching to online instruction. Needless to say, I was concerned; I was concerned about my mental wellbeing, I was concerned about my ability to stay connected with my peers and professors, I was concerned about the quality of digital instruction that my university would be providing.

As predicted, the coronavirus posed severe repercussions for all students; whether it be high school students, university students, or even graduate students. We were effectively isolated, cut off from a majority of our interpersonal work and were forced to use several, sometimes defunct online platforms to learn and talk to each other. We oftentimes even had to juggle multiple platforms at once for various courses, leading to mass confusion and technical roadbumps.

Remote learning platforms

There were many commonly used “official” platforms for remote learning such as MS Teams and Zoom, but they were all mostly plagued with issues that made it unappealing to the average student. Professors and teachers would also oftentimes share the concerns of students in regards to these platforms.

From personal experience and other student testimonials: MS Teams is a resource hog, it has limited flexibility for e-learning features, the meeting quality is subpar compared to other products, and its confusing structure turns away even the most technologically adept student. Furthermore, Zoom also has its fair share of issues, most notably in regards to privacy and security (you may have heard of “zoom bombing”).

However, it should be understood that every platform has pros and cons, and no one platform is perfect or objectively better than the rest. However, if we choose to ignore all the technical pitfalls, a glaring issue still remains: a majority of students were simply not comfortable with these platforms. This is important, it’s obvious that if a student is comfortable with a platform, their engagement rates will be higher and they will be more encouraged to communicate better with their peers and instructional staff.

The ideal platform

Throughout my study term, I noticed an interesting trend, while we had several enterprise-grade platforms for professors to conduct remote learning, they were only really used for the dissemination of information. Students never casually chatted or connected with their peers through these platforms, nor were they using more traditional chat platforms like Instagram group chats or Facebook Messenger. How were students staying in touch with each other?

Throughout the term, it became immediately evident that Discord was being widely used for all sorts of student communication. Entire cohorts were creating Discord servers to stay connected with each other, students from common courses were creating discord servers to study together, and even student clubs had Discord servers to conduct meetings and plan!

The use of Discord across various student bodies at various schools was spreading like wildfire, it seemed like almost every course, club, and cohort had a Discord server dedicated just for themselves and their students. The most important takeaway from this was that students were incredibly comfortable using Discord. Why couldn’t we take advantage of this and use Discord as an e-learning platform?

An unlikely player in the remote learning field

Discord is primarily a gamer and community oriented platform, hence why students were immediately comfortable using it. However, due to its original target audience, there were two major roadblocks to being able to use Discord for remote learning;

  • Limited verification, unlike MS Teams or Zoom, there was no way to ensure that a discord account belongs to a user from a specific school/university. This allowed random users to join a Discord server and be disrespectful. There was also no way to ensure that the name associated to a discord user was somebody’s real name.
  • No supportive e-learning features, other platforms such as MS Teams have inbuilt functionality such as calendars for due dates, or places to put course content, course outlines, etc.

The Solution

The Discord platform provides users with a robust API that allows anybody to programmatically introduce any feature they’d like into a Discord server of their choice.

Using the Python programming language and this API, I set out to create the features that would allow Discord to be a viable remote learning platform. I created a service called the University of Waterloo Helper Bot that could be added to any server and completely transform it into a secure and supportive environment for students to communicate with each other. This service would also allow for professors and teaching faculty to help students and hold instruction directly on Discord.

This service included a plethora of features that aimed to bridge the gap between Discord’s current state and it being a functional remote learning platform:

  • The service integrated directly into the University of Waterloo’s user directory to introduce a verification system into any server it’s added to. Upon joining, a user would simply type their Waterloo ID into a private channel and the service would automatically fetch their details and send a 4-digit verification code to their UW-mandated email. After the user enters the verification code back on the Discord server, they would be given full access and their name would permanently be changed (if wanted) to the official name for the user on file by the University.
  • A dynamic system where students could create collaborative study rooms with peers (consisting of one text channel and a voice channel) on demand.
  • Google Calendar integration that would allow students to see important due dates or events for their server directly in Discord.
  • An automatic reminder system to remind students about important due dates.
  • A command for students to retrieve course materials such as textbooks immediately and without hassle.
  • A command for students to view upcoming examination details.
  • A way for students to view course outlines, marking schemes, and schedules directly in Discord.
  • A subscription based notification systems where users can subscribe to notifications pushed out by server owners (or professors if it is a course server).
  • Administrative commands to allow professors and coordinators to see the UW-based information associated with a discord account to maintain the security of the community.
  • A beautiful, seamless web interface to allow server administrators to manage their bot instance in real time

The project was an immediate success! Since it’s inception in Spring 2020, it is now being used by over 5,000 students and various professors for online communication and official instruction. Some notable shoutouts that use this service are the University of Waterloo Engineering Society, ECE cohorts, and various Physics faculty courses such as PHYS 111, PHYS/BIOL 280!

I’d also like to shout out three contributors that helped make this project happen and kept it maintained: Deandre Baker, Keith Choa, and Ryan Zhang, thank you for your hard work!

Media

Here are some screenshots of the service in action!

Learn More

If you’d like to see the technical details of this service, as well as the source code, you can visit the github repository at https://github.com/Kav-K/UWHelperBot!

To see more write-ups check out my website at https://kaveenk.com

--

--