Last summer I had the opportunity to complete a 4 month co-op placement at Hydro One in Barrie. I was a computer programmer analyst, and was responsible for maintaining all of the programs used by the Training and Development department. In addition to providing maintenance, I also created a new program that managed the training courses offered by the department. I worked within the existing software stack at Hydro One (WinForms, C# and SQL).

Main Screen

One of my main goals while creating this program was to make it as user friendly as possible. To accomplish this, I worked with the future users of the program to develop an interface that was both intuitive and easy to use. I created a number of custom UI elements, and incorporated drag-and-drop functionality. As a majority of the functions of this program involve courses offered on specific dates, I chose to organize a majority of the information in a calendar view.

Calendar View

I also incorporated a number of user preferences, including the ability to adjust the main interface colors.

Color Chooser

While working on the programs, I found it challenging to keep the code documentation up to date. The existing documents were created in Microsoft Word, which made them difficult to navigate, and meant that you had to manually update any functions that were added or changed. To fix this, I created a command line application that took the XML documentation files generated by Visual Studio and converted them into a single HTML based documentation file. I set this program to run during the post-build events in Visual Studio. This ensured that the documentation was always up to date.

Documentation

The HTML file uses a light weight JavaScript router (rlite) to handle all of the page changes without refreshing. The logo is loaded as a DataURI, and all scripts are embedded in the file. This allows the documentation to be contained in a single HTML file.