This is my seventh year raising money for Johns Hopkins Children’s Center via the Extra Life gaming charity. When I started back then I was brand new to streaming or recording video game play. In fact, just a few years before that I hadn’t even understood the point. I found out that you could somehow display your progress towards fundraising on your screen while you played. I had no idea how to do that and, at the time, I’d only done commandline programs. So I found bfinleyui’s web-based program. I set up XSplit (which I was using at the time) to capture the web pages and was able to have a great first year. The following year he created an app with Adobe Air that was even better. The GUI for this app would become the inspiration for ElDonationTracker; what I aspired to eventually build. My first commit to the repo for ElDonationTracker was that year. I was exploring how to get the API data via the commandline, but I wasn’t too hurried because I had the Adobe Air app. Unfortunately, the following year Adobe killed Adobe Air. So it was now time for me to try and make my own app. Unfortunately, I’d never done GUI programming before and my experiment with the TKinter GUI framework didn’t quite work.

I spent a year or two perfecting the API part of the code. I would run it on the commandline and use the output for my streams. It worked on both Linux and Windows and things were pretty good. But I still didn’t have the GUI. This meant I still didn’t have the “you got a donation” notification with an image and sound file. This was what I missed most from bfinleyui’s GUI app.

Extra Life Donation Tracker Donation Alert window
Extra Life Donation Tracker Donation Alert window

Finally, a few years ago I discovered how to easily code with the QT GUI framework thanks to a book I’d read and the discovery of the QT Designer program. All I had to do was create a GUI with drag and drop and then use pyuic to turn it into Python code. From there I could add my logic and the first GUI was born.

I then spent the next few years perfecting the code. There are a few issues in the Github repo documenting various bugs I’ve had to iron out. I’ve also added unit tests to try and capture regressions and other issues.

With 6.0 I have finally met all the goals I set out to reach 6 years ago. It’s a great-working GUI that provides everything I need for streaming for Extra Life. I have other users (evidenced by bug reports) and that really makes my day. During the 2020 Extra Life Day, the Streamlabs integration (which has displaced the need for programs like this) failed, but my program continued to work. Huzzah!

Extra Life Donation Tracker main GUI window
Extra Life Donation Tracker main GUI window

One thing I made a key goal for 6.0 was structuring the project so that others could use the Donor Drive API I’ve built to create other Python Projects. In order to really drive this home, I may end up separating that code out into another package, but I hadn’t decided at this point.

Now that I’ve finally reached my goal, it may be a while before I reach 7.0 or even anything past 6.1. I will focus on improving the unit tests and, if anyone requests it, new outputs. It’s been incredible to work on a project for 6 years and finally reach a finishing point. It’s my longest running, most complex, and most used project and it’s the one I’m most proud of.

Published by Eric Mesa

To find out a little more about me, see About Me