I had limited power over the frontend’s design, being required to using the Windows Forms framework (instead of the succeeding WPF framework), or more realistically some kind of emberJS (or even ASP.Net) which would provide a far more intuitive user experience as hair salons are far more likely to use online booking than anything local in 2018. Also with Windows Forms not supporting HiDPI displays it scaled up poorly on higher quality screens.
Due to encapsulating all of my functionality code in a DLL, it means that an alternative interface can be provided without a significant amount of change to the codebase, all my creation, user management and booking calls are already implemented so it would just be providing a new interface to interact with it. Potentially allowing two different ways to use the system at once.
As someone who is passionate about clean UX design, I realised quickly that I wouldn’t be able to be proud of a system that didn’t have a clean look and make it’s functionality clear and understandable to the end user.
The bland appearance default system form, it doesn’t clearly state what the user is doing or look friendly.
Time to brand!
As you can see, I overhauled the interface as much as I could without impairing the marker’s ability to assess a similar interface style when grading me.
I introduced an icon to make the application more clearly viewable (especially from the start menu), renamed each of the windows to something friendly and swapped out the default grey Windows Forms application background for a white and orange application combo of brand and forms together.
Things I’ve learned
Through working on the project I’ve gained a better understanding of creating more reusable code in C# including using regions to ensure that code is easier to refer back to in future and it’s organised well, using summary comments to allow methods to be clear when using the DLL elsewhere (all methods are clearly explained to allow a web interface to be built with the same business logic).
Also through the project I’ve learned how to make my methods and classes abstract, creating virtual objects to fill gaps in my projects while I was still building functionality, if working in a group project this would’ve been even more helpful as it would mean I could build around functionality without it already being programmed. All objects are also validated before creation in the DLL.
Test, test and test more! From working within SIS at the University of Hull, I’ve learned to expect the unexpected and to test again every function to ensure the best end product is produced, I both self tested and user acceptance tested the end product with computer scientists and non-computer scientists (finding bugs like emojis crashing the application).
Changes and Concluding
Obviously, the first thing I’d alter about this programme is the method used to interact with it, moving from a desktop application to something that’s web based. I would also provide additional functionality like sending emails to customers to confirm appointments and moving to a database instead of CSV files for storing customer and booking information more flexibly.
I’m pleased with the end product of the project, within the given constraints and feel that the underlying functionality is very effective.
Snippits' code was created for an assignment for the University of Hull and as a result cannot be published publicly online.