Inspiration

I forgot to do one of my quizzes, and we assume others have this issue, so we wanted to created something for social good.

What it does

The discord bot reminds the user to do their assignments. It can display the user's assignments and has a feature to check off the list like a todo list.

How we built it

We incorporated Canvas API to retrieve important data for the user and display it in a convenient way for most students through Discord API.

Challenges we ran into

  • Canvas stores the time due dates in UTC time so we had to make a function to convert due date to the user's local time zone.
  • Canvas API doesn't provide a lot of getters and utility functions for our purpose, so we had to look through the documentation for the object to find accessible attributes to use.
  • Storing data was also an issue as we needed to make the data accessible across different files.
  • Formatting the embeds to separate the list into pages and being able to add the feature to check off items was difficult because of how we originally stored it making it difficult to access what we needed.

Accomplishments that we're proud of

  • We are proud of the fact that we were able to implement all the core features we had originally set out to accomplish within 24 hours.
  • We are proud of how we formatted the todo list to be in an embed and have multiple pages.
  • We are proud of being able to cross out assignments on the todo list.
  • We are proud of implementing the feature to send user every 6 hours about assignments due within 3 days.
  • Our bots profile picture is a mix between the canvas logo and marina hacks shark! (very cute).

What we learned

  • We learned how to use Discord API and Canvas API.
  • Learned how to retrieve data and mangling it into a usable format.
  • We learned how to work with datetime objects. How to convert them to different format, how to convert to different time zones, and sort data based on time.

What's next for Canvas Bot

  • Changing how we store data to using a database like MongoDB or PostgreSQL.
  • Send users canvas announcements and grade updates.
  • More specificity in how much is left till each assignment is due.

Built With

Share this project:

Updates