Introducing krypton - A Discord Classroom Manager Bot πŸ§‘β€πŸ«

Taking the unconventional classroom, way up a notch

Β·

4 min read

Introducing krypton - A Discord Classroom Manager Bot πŸ§‘β€πŸ«

Online learning is rapidly becoming one of the most cost-effective ways to educate the world’s rapidly expanding workforce.

-Jack Messman

Hello World πŸ‘‹

It's Suyash and this post is about my latest project Krypton, built for the super-awesome HarperDB + Hashnode Hackathon. As the project was announced, I began pondering over an idea that would impact the masses. Being a class representative (and a student first :p) I noticed how Discord - despite being loaded with powerful features, was not even considered for being a viable option for online classroom activities.

Inspired and driven, thanks to the Hackathon deadline, I got to work and the result is krypton - The Discord Bot for Classroom Management.

So what exactly is krypton?

TLDR;
krypton is a Discord bot that let's teachers manage Servers built for students and performs the functionalities like:

  • Enrolling Students in different classrooms
  • Creating Assignments
  • Accepting Submissions
  • Filtering Submissions and getting assignment specific report

Discord has always been promoting itself to be a viable destination for faculties and students to engage together (Source) with Discord even having a Public Study Server. It has several features and bots that allow a frankly ridiculous amount of functionality and attractive tools. One missing link - the ability to accept assignment submissions.

Enter, krypton!

Built with Node.js for back-end, HarperDB for Database and Heroku for deployment, Krypton aims to solve the problem of assignment submissions. All that a teacher has to do, is invite the bot to the server. From then on, student submissions can be tracked without hassle. Functionalities such as enrolling students, creating assignments for the class, accepting and filtering their submissions are possible just by the input of simple commands.

Codebase

Check out the Project here: - krypton
Help us by contributing. 😊

Contributions

Pull Requests are always welcome!

If you wish to contribute using Github, you can work on any features or create one on your own or create issues. After adding your code, send us a Pull Request.

Please contribute using GitHub Flow. Create a branch, add commits, and open a pull request.

Licensed under MIT

Invite/Test krypton

You can invite krypton to your server here.
or
If you want to just test it, you can join our Support Server here.

Design

backend.jpg


Now let's get into the Technical Jargon

Usage

Server needs to have Teacher role and will be able to manipulate classroom.

Helping Yourself

You can view commands and their proper usage using command $help.

Screenshot_2021-07-01_00_53_29.png

Creating a Classroom

Classroom can be initiated using $init command in channel. One thing to remember here is you need a Teacher role to create a classroom and the channel name will be set as classroom name.

Screenshot_2021-07-01_00_42_07.png

Enrolling Students

Once classroom is created, Teachers can enroll students in their classroom.Enrolled students can submit assignments.

Screenshot_2021-07-01_00_44_33.png

Creating an Assignment

Only Teachers can create assignments. To create an assignment, you need to send a assignment file with command:
$create {assignment_no} "{title}" {yyyy-mm-dd} {hh:mm}

Screenshot_2021-07-01_00_42_07.png

Viewing Assignments and Reports

$view - Teacher/Students can see given assignments.

Screenshot_2021-07-01_00_40_30.png

$view enrolled - Teacher/Students can see who are enrolled in the class.

Screenshot_2021-07-01_00_39_28.png

$view {assignment_no} report - Teachers are allowed to get assignment report which includes students who submitted the assignment, their assignment url and the status i.e whether it was submitted before deadline.

Screenshot_2021-07-01_00_38_04.png

$view !{assignment_no} report - Teachers are allowed to see which students have not yet submitted the assignment.

Screenshot_2021-07-01_00_36_32.png

Submitting an Assignment

Enrolled students can submit the assignment.

$submit {assignment_no} <"comments"> - Students can submit the assignments. Students need to upload a file(any type) with the given command to submit the assignment. Comments are not compulsory.

Screenshot_2021-07-01_00_34_21.png

Removing Enrollments/Assignments/Submissions

Teachers can remove enrolled students, created assignments and all the submissions of given assignments.

$remove enrolled @{handle} @{handle}... - Mentioned students will be unenrolled.

$remove submission {assignment_no} {assignment_no}... - Submissions of mentioned assignments will be deleted.

$remove assignment {assignment_no} {assignment_no}... - Mentioned assignments will be deleted.

Screenshot_2021-07-01_00_32_49.png

Deleting Classroom

Teachers can delete a classroom using a simple command $destroy.

Screenshot_2021-07-01_00_30_04.png


So, that's Krypton for you. In the upcoming days, we plan to release more cool features like Google Classroom integration, lecture scheduling and many more while taking feedback from our users. So do checkout the Project and we welcome all criticism.

That was my first blog... Suggestions are welcome πŸ˜‡

Thank You!
Β