Inspiration

Discord is used as a hub of sorts for many people. Accessing games from one place rather than having to deal with multiple launchers is very useful. similarly, it can be a bit annoying as a student to not have some place to consolidate the tools you often use for finding the best class and professor, as well as attending said classes in this age of online learning. We created this bot as a solution to several quality of life issues we ourselves would like to see fixed.

What it does

The Bot has several features for both students and professors:

Students :

  • can obtain a professor's ratemyprofessor information
  • view a classes UTD grade distribution for past semesters
  • set reminder/timers
  • ask priority questions that get saved to an important question list
  • access frequently asked questions about a class (i.e HW policy, test dates, etc)
  • dictionary feature

Professors:

  • take attendance
  • view important question list
  • set reminders
  • post announcements
  • set a list of frequently asked questions
  • set a list of helpful/important class resources (i.e helpful youtube videos, khan academy pages, etc)

How we built it

The language used for the bot was python. The application runs as a discord bot (as one could guess from the name) and the creation of this bot was done through discord's website.

Challenges we ran into

The biggest challenge, and sadly, setback was the Blackboard API integration. The blackboard API requires permission from both the university and Blackboard/elearning to properly use. As this was not possible in the timeframe, we were forced to axe several features and continue without using things that would require blackboard/elearning to function. Another Issue that arose was the bot outputting several copies of an output (eventually discovered to be a result of several instances of the bot running on different machines at the same time). Another big issue was the bot's auto delete feature. The bot has an attendance method which deletes all messages from a designated attendance channel to keep things clean. however, this accidentally caused the bot to delete every message from the user as well as the bot across all channels. This coding error was fixed subsequently as it was an issue in logic that arose from transcribing a feature from a different language.

Accomplishments that we're proud of

The UTD grade distribution graphs are a feature we would like to specifically point out, due to its aesthetics and the complexity required to get it working. The use and implementation of the RateMyProfessor API is also something we are quite proud of. additionally, The ability of the bot to DM the user is another feature that we would like to show off. lastly, the addition of the dictionary integration is something that was done near the very end, so we would like to boast the fact that it works!

What we learned

This was out first venture into discord coding and creating bots! we also learned how to integrate several API's in one project. This was also a first for reading json files and creating graphs from them using matplot.lib. We also learned a bunch about GitHub and how to effectively use it.

What's next for Discord UTD Classes Bot

As we had to remove several planned features due to the issue with blackboard, we would like eventually integrate many of them back if we ever manage to get the blackboard API for actual use. Some of the features we would like to add include integrating the blackboard calendar to the to the bot, as well as allowing the bot to post announcements and such from eLearning to discord. Additionally, we would like to make the UI a bit prettier by making the bot's outputs be in the form of a discord widget. We would also like to add a calculator for basic math questions.

Built With

Share this project:

Updates