Inspiration

After the coronavirus forced us to switch to online-only classes, many of us used Discord to keep in contact with our classmates and keep up to date with what was going on in the class. It could have definitely used some helper tools.

What it does

This bot lets students create channels that only they can see once they use the JoinClass command, so that students can all join a dedicated channel for their class without needing to wait for an organizer/teacher to setup the class channels. Also there is a RaiseHand command that will add/remove a role from a student when they want to ask a question, that way they do not have to interrupt.

How I built it

We downloaded node.js and the discord.js library, then build a basic bot and added a plugin system to make creating new commands much easier and more organized.

Challenges I ran into

We had much more ambitious goals for this bot, but due to time constraints, we didn't have much time to figure out API's we've never used before. We tried to implement MongoDB for storing data, that way someone could create a reminder for assignment due dates, and other class related things but we had no way of storing that data. Also, collectively, we had very little experience with GitHub on collaborative projects, so there was a learning curve in our workflow for pushing and pulling code. We also wanted students to be able to upload a syllabus and have the bot pull important info from it, like exam dates, office hours, and contact information, but our lack of experience with natural language processing and the time constraints made this unachievable. Another feature we wanted was for the bot to be able to interact with the Canvas API and pull upcoming assignments, but that required permissions we did not have.

Accomplishments that I'm proud of

I'm proud of the amount that we've learned through this Hackathon, whether through the workshops or each other. We definitely came out of this Hackathon more knowledgeable and more confident. I'm also proud of the modulariety that the discord bot has, it made it incredibly easy and pain free to merge new commands to the master branch and makes it much easier to add more commands later.

What I learned

Mostly, I learned the importance of communicating when working with a team, how to collaboratively use GitHub and not just on my own personal projects, and got exposure to working with different API's.

What's next for Class Discord Bot

We'd love to implement the features that we were not able to fit in in the 36 hours. We'd like for the bot to be very versatile and used in a few servers for online schools or school clubs.

Built With

Share this project:

Updates