Inspiration

More and more as online learning became a staple in our university journeys, we looked for ways to make the most of the online communities we turned to for fun. One such way involves the StudyLion Discord bot which promotes studying through the Pomodoro Technique.

Seeing how effective a simple online, non-living entity was able to make studying fun led us to think - how can we use the power and reach of Discord to help ease the lives of others in a way that StudyLion helped us out? Enter, Bluebase - Your UofT course lookup companion.

What it does

Bluebase is able to:

  • Browse courses and show you information about them
  • Keep track of courses you add to your study channels
  • Give information on meetings (LEC/TUT/PRA) associated with a course

For further information, please refer to the bot commands tabled below:

commands table

How we built it

Bluebase was built using three main tools:

  • PyCharm for Python on the backend
  • Discord as a means to serve to the front end
  • discord.py to access the Discord API
  • Multiple cups of coffee, arguably the most important tool

Alongside these tools, we also used JSON data-storage and the UofT Arts and Science Timetable to obtain data on UofT St.George courses, and GitHub/Google Docs to manage our workflow.

Bluebase was built in three main steps including retrieving the data from the ArtSci Timetable, packaging the information into one Course class, and finally presenting this data in embedded Discord bot messages.

Challenges we ran into

As with most events under a time-limit, our largest limiting factor was time (more on this in a later section) and so this led to some compromises when challenges came up.

Originally, we had planned to implement a feature which relays weather information that aligns with meeting times to better prepare users of the bot for their day ahead. The back-end which uses the OpenWeatherMap API was created, however, with time running short we chose to omit adding it in the embeds to avoid a half-baked embed.

Additionally, we had the idea of pinging users as a reminder before each class, however, the wall was hit when looking in to how we persist time across the bot and tailor (potentially) simultaneous pings across servers.

Despite multiple challenges, we pressed on with the goal of having the basis of our idea come true - something we accomplished!

Accomplishments that we're proud of

Going into this project, 3 of our group members had no experience with discord.py and making Discord bots. Learning the discord.py API in such a short amount of time while simultaneously parsing JSON files to clean messy data and make it accessible is an accomplishment for us!

We feel proud in putting our Object-Oriented programming skills to the test and building a bot that will be extremely beneficial to UofT students and can probably be a tool for the Academic Success Centre at St. George campus too.

What we learned

We believe that one of the key takeaways from this hackathon is the opportunity to work on a programming project in a very limited amount of time. We got to experience operating in a group project where we had to think of the project specifications and logic. Moreover, we had to polish our code, add comments and fix bugs before the deadline!

What's next for Bluebase

Looking forward, we want to implement features we had to cut out due to the time-constrained nature of a hackathon. These features include:

  • Time-triggered pings for meeting reminders
  • Weather information relevant to meeting times (and location of meeting)

Through more time and refactoring, we believe these features can very well be added, and Bluebase can be the optimal form of conveying course information to students - reaching the masses through a well trusted and loved platform such as Discord.

Built With

Share this project:

Updates