This project was born largely out of my own curiosity about courses offered at my university. The tool currently in place, Classfinder (with an e), is functional, if not particularly pretty, but I wanted to know things about the courses that were less-than-useful but still interesting. Things like “how many courses are in the communications building?” or “how were Honors courses distributed around campus in the years before the Honors Center was created?” I decided that the natural thing to do would be to have my own database mirroring the university’s, which I could then write tools for and query in ways that the official tool didn’t offer. I eventually ceased development because summer break rolled around and then I started the project below, but the code remains on Github.
I stumbled upon this project while sorting out some issues with plugin naming and checking versions in my installation of Guild Wars 2. After each update to the game, I would have to check the website or git repository for any add-on that had been broken by the latest game patch, in order to see if there had been any updates to them to fix those issues. I'd also miss any updates that added new features to an add-on until I remembered to check their site. If I needed to make any changes to the add-on configuration I had, I'd have to remember which add-on was associated with what plugin (which tended to have such descriptive names as "d3d9.dll", "d3d9_chainload.dll", "d3d9_mchain.dll", etc.). This led to frustration on more than one occasion, and while I was gingerly picking my way through the game folder one day after an update I struck upon an idea - "Hey, I could write a Powershell script to do this for me!"
Long story short, after I wrote the scripts, I decided I wanted my work to be usable by other people, so I added a basic configuration file. Then, I wanted it to be easy to use, with a quick double-click operation, so I wrote a batch file to run the scripts in sequence. In my Googling and Stack Overflow sojourns while learning the basics of Powershell scripting, I kept hearing about C#, and I discovered that I could make a proper executable desktop application with that. Excited by this prospect and encouraged by the fact that C# is similar in many ways to Java, I began development on what would become the GW2 Unofficial Add-On Manager (GW2-UOAOM for short). Project details are available on the Github.
This was the first collaborative dev experience I had outside of the classroom, and also my first hackathon. I was paired with a freshman (I was a Junior at the time, but only in my first year at Western), and we decided on a fairly simple task: Connect to the Alpha Vantage API and print various financial data to the console when the user requested it. Nothing fancy, but we felt that it was a good match for our skill level (and our desire for sleep during the 24-hour contest). My partner decided to handle the console user interface, while I worked on making API calls and parsing the JSON files returned. I learned a lot about working alongside another developer, as well as the lesson to select a library very carefully and map out the features it needs to have before implementing it, particularly when working on a schedule. For an extended and mostly coherent account of my hackathon experience (written after the deadline on a scant few hours of sleep), click here, or visit the Github to see the finished product.