</> Dima

Contact

iControl

Project Overview

Back when I used to work at Gordon Academy, the head of IT division shared with me a problem he had couple of years already: Every classroom had a projector mounted on the ceiling and the remote controls that controlled them always kept getting lost/stolen.

The head of the division tried solving that problem by purchasing software, that allows you to control projectors from classroom computers. But the problem wasn't solved yet. The software academy purchased wasn't user friendly, installing it was a hassle and it lacked basic functionality like input switching and sometimes it had a bug that makes it stop working.

iControl

One day I grew tired of another support call where that old piece of software broke again and I decided to take matters into my own hands. I thought of a solution that will help our division "get rid of" all that calls, I knew that the answer will be to come up with a new program, not store bought - but functional, that's how iControl idea came to life.

Stack Overview

Unlike my previous project Doketz this time the program required a UI. I started my project with ready to use toolchain named Electron Forge. To interface with COM ports, I used serialport library and last, but not least I used hazel-server to handle updates.

User Interface

My primary target was reducing amount of support calls from technologically challenged staff, so friendly UI was a top priority and that's why functionality was limited to turning projector on or off and changing input sources. iControl UI Illustration

iControl UI Illustration

Robust and Reliable

My program needed to run as long as classroom computer worked. To achieve that I disabled "close" and "minimize" buttons, because pressing one of these can lead to another support call. Also, I did a little trick with "Settings" button to prevent accident changes: you can't press it unless you're holding shift key. On top of that the program starts automatically when the PC restarts so it will always run and be accessible at any time.

iControl Settings

In settings menu you are able to quickly configure all the necessary settings like changing projector model and selecting COM port connected to classroom PC from the projector. Settings menu illustration

Settings menu illustration

Auto-Updates

Using hazel and uploading it to vercel enabled auto-updating functionality of iControl. So, If I wanted to add another projector model, I could just push an update to GitHub, and it would automatically update all over the campus.

Personal Fulfillment

iControl was deployed, it took the lecturers of the campus no time to get ahead and use it. The lecturers were very pleased with the program and were very grateful to me, the head of IT division was also very happy that I offered him a solution for a problem he was facing for years. I felt that I helped a lot of people and that makes me feel acknowledged.