I wanted to build a tool that would showcase the skills I have developed over time through my work building tools at Rockstar and Ubisoft. I am also very into cars and really like to take care of mine, this is where ImprezGarage comes in as it meets both of my needs.
I have built ImprezGarage with C#, WPF, MVVM, Prism and Entity Framework. The requirements for this tool was to have a program where I can add my vehicle to and any important details i.e. road tax expiry date and insurance expiry date. I also wanted to be able to keep track of my petrol expenses as sometimes we can all spend a bit more than we planned on petrol, especially if you have a busy month. The last requirement was for me to be able to track when I have performed a maintenance check of the vehicle, which I try to do once a month (or at least that’s what I tell myself). Once I had these requirements I set off building ImprezGarage.
ImprezGarage is a vehicle maintenance tool designed to help keep track of when I have performed any checks on the vehicle i.e. an oil change. It will also remind you when you have not performed any maintenance checks in a period of time.
ImprezGarage has been built on the Prism framework, allowing for me to break up the application into loosely couple modules. This allows for each module to be maintained and tested more thoroughly as well as, allowing for modules to be added or removed at any point without causing an affect on the other parts of the application. For a more in depth look into Prism go here.
To be able to access this anywhere and make it more useable, I connected this to a Firebase 'Realtime' database by using the FireSharp library. This is an asynchronous .Net client library for Firebase and you can read more about it here. This means I could also show this off to others during interview processes or I could extend this with a mobile application version, which would allow me to enter the petrol expenditure as I purchase petrol.
The code for the Firebase version is also on my Github repository under the 'Firebase Intergration' branch.