At the beginning of 2016, I developed an application to renew the transit pass (UPass) used by university students around the Vancouver, BC area. The UPass system was recently overhauled to use the Compass Card, which means rather than printing a new paper pass every month students need to log into their school account and reload the pass to their Compass Card.
The app I developed, RenewPass, is an Android application that automates the process of logging into a school account, and renews the UPass for the next month. It's built to be dead simple, renewing automatically every month, or at the press of a single button.
I started development knowing how to build an Android app, but without any of the expertise as to how the maintenance, technical support and troubleshooting worked for a production mobile application. I built out functionality to allow users to report errors in response to not being able to diagnose issues remotely with users, upgraded the number of schools the app worked with at the request of many, and added version migration to make sure the app worked after being updated. Additionally, since the app is open source on Github, I had the experience of accepting pull requests from other students, tracking issues and feature requests, and collaborating with people on feature development.
These basic tasks, which are common in app development, are challenges to me only because of my inexperience; in the grand scheme of things, they don't seem much like challenges at all. But the experience I've gained overcoming them has made me a significantly better programmer, no matter how trivial the solution.
What makes RenewPass a challenging project for me is not its technical complexity, but rather the effort needed to develop an idea while adapting to the concerns of users and maintaining the stability of the end result, without having done any of this before.
This is an edited version of a response to the question "What's the most challenging project you've worked on?" in my application for Hack the North 2016. The end result was a lot better articulated than I expected, and I think it's a genuine and legitimate account of why RenewPass means as much as it does to me.