Inspiration

Coding's cool. What's even cooler? Wearing together the platforms used in a coding class and creating an extensible, integrated, gamified workflow. Awarding students points for engaging with different platforms and reaching learning goals can help create a community around virtual education.

What it does

The project aggregate activities from a student on various platforms (PL, Discord, Piazza), such as posts, messages, completing assignments, and award points for activities done by the student. The student's points are then ranked on a leaderboard among all the other students in the class.

How We built it

We built the backend using typescript, and we store stats and info about a student (their discord account, Piazza account) using MySQL.

Challenges I ran into

The most difficult challenge was getting and tracking each student from each platform, as the platform's API is not built with tracking individual student activities in mind. We had to get creative and make fancy design decisions in order to take advantage of the limited data we could get while still trying to represent the activity of the student to the maximum extend.

Accomplishments that we're proud of

This is our first online hackathon, and we learnt about the realities of working remotely with teammates. Coordinating and assigning tasks were not as easy as in person hackathon, but we're glad that we managed to put together such a project.

What's next for ... And Dragons

Piazza integration could be improved if we had more time to investigate and come up with an in house API, as Piazza does not have an official API, and the existing ones we used in the interest of time are unofficial and outdated.

We were also interested in the prospects of tighter Discord integration in PL itself, effectively increasing the presence of Discord onto PL, since from our experience, students overwhelmingly prefer Discord to talk to TAs, and we believed improving Discord presence on PL would greatly benefit community building and student engagement even without in-depth integration.

Share this project:

Updates