Inspiration

After having some frustrating experiences with Brightspace's current format, we thought it would be easier to have a discord bot parse important information and present it in an interactive and useful way.

What it does

This bot resides in a class group chat, and after authenticating each user through BoilerKey, it can access data about the class and presents it to members in the server. It also streamlines existing functionality from Brightspace's website.

How we built it

We started with some tutorials on building discord bots, which quickly evolved into us teaching ourselves how to write coroutine programs in python with asyncio - an interesting challenge! After getting a working bot we worked on making BrightBot capable of authenticating users, with the help of a helloworld mentor. Then we worked on integrating authenticated sessions into Brightspace API calls so that we could accomplish our goal!

Challenges we ran into

We ran into several challenges in making BrightBot, primarily in using Asyncio, getting Authentication right, and making Brightspace API calls. There was a pretty steep learning curve for us to learn coroutine programming, it's not really single or multi threading, and so it was very new to us! But after some good old print statement debugging, we got more and more familiar with it, and got it to work in the end.

For the Authentication, our challenge came from the Brightspace API needing a certain kind of authentication which required admin access at Purdue. So, we had to find another solution. In working with the mentor Elnard Utiushev, we learned that we could authenticate through BoilerKey! After getting some starter code from him, we worked through it rewriting so that it would work with our bot.

Accomplishments that we're proud of

After 8 hours of work, we got BoilerKey Authentication to work from a script! Not only that, but we implemented it in an asynchronous coroutine, something totally new to us. In doing both of these things and solving the other problems we encountered, we now have a really great platform which we can build a plethora of useful features from.

What we learned

We learned a lot in this hackathon, both technically, as we've said, but also about how to solve complex problems, learn new skills from documentation, and collaborate well through Git.

What's next for BrightBot

The sky's the limit! We plan to further implement features of the Brightspace API now that we have a way to successfully call it and create authenticated sessions. We also want to try and make a dedicated server for our bot, so that we can focus on user security, and also make use of the bot more convenient for ourselves.

Built With

Share this project:

Updates