Skip to content

Capstone-Projects-2023-Spring/project-discord-classroom

Repository files navigation

Open in Codespaces

Discord Classroom Bot

Report Issue on Jira Deploy Docs Documentation Website Link

Video Demonstration

Discord Classroom Demo

Keywords

Section 704, Discord Bot, Python 3.7+, Database, Teaching Environment

How to Run Discord Classroom Bot

  1. You will need to first create the Discord Server that you would like to use as a Classroom (for help).

  2. Next you will need to invite the Bot with this link to join the classroom you have created.

  3. Enter the server and you can now type ‘/’ and select help or type ‘/help’ to get more information on the Bot.

  4. You can follow along with the Acceptance Test (Here).

Project Abstract

This document proposes a Discord Application designed to facilitate a comprehensive learning environment for educators. With this bot, educators can schedule assignments, quizzes, discussions, manage grading, attendance, polling, and role assignments. The bot allows educators to add TAs and students to the Discord server and assign roles through the bot. Students can access their grades, submit assignments, and communicate with their classmates. Additional features to be implemented include a dedicated channel for sharing notes, AI tools for studying, a ticket system for asking questions, a section for creating and scheduling announcements, and lecture tools.

High Level Requirement

To begin using the Discord Classroom Bot, the user must first add the application to their Discord server. The bot will then fully customize the server by adding text and voice channels for general topics, such as assignments, discussions, syllabus, and more. In a private channel, the Discord bot will display available commands for the educator to customize the server and add content like assignments and quizzes. These commands are how the user (the teacher) interacts with the bot. TAs and students will also have access to specific commands that make grading and learning more manageable.

Conceptual Design

The bot will be programmed in Python 3.9+ utilizing multiple libraries like pycord, supabase, and fastapi. Our database will be stored on Supabase which is a cloud storage application. We will also use FastAPI to deploy the API to connect to our database.

Background

The recent pandemic has made online learning essential for students to continue their education in a safe environment for both educators and students. This product aims to make teaching from home easier and less stressful. While applications like Canvas and Blackboard allow educators to post assignments, quizzes, and grades, students seldom use these sites to connect with one another. Instead, they often create Discord channels to communicate with each other, where teachers and TAs are not involved in the discussion. Moving the learning environment to Discord itself will enable students to connect with one another and teachers and TAs to be part of the conversation.

A similar Discord bot to the proposed one is “StudyLion”. StudyLion promotes study communities where students gather in rooms to study together, with features such as timers, achievements, and personal profiles to engage users. However, StudyLion is mainly for students to connect with one another, while the proposed application allows teachers to control the Discord environment. Additionally, StudyLion does not support features such as hosting quizzes and submitting assignments, which this application aims to provide.

Required Resources

For the entirety of this project, we use Python3 to build the Discord bot and creating our API to the database. The discord bot and API will be hosted on Google's Computer Engine costing about 6$ a month. Our database is hosted on Supabase for free.

Collaborators

timlopes17
Tim Lopes
tuj83407
Kiran Nixon
tun31876
Tanvir Alam
BenBaldino
Ben Baldino
Salte8
Steven Altemose
rk2357
Ryan Klein
ApplebaumIan
Ian Tyler Applebaum