Time Clock is a java application that helps employees track their hours at their workstation. Time Clock runs in the background tracking the amount of time the user has been idle.
Dialog generated by Time Clock when the user returns to their workstation.
Time Clock reports idle time by using the same native Windows utilities that tells the computer to sleep or turn on a screen saver. Approximately every minute the program reports the amount of time the each user has been inactive to a server. When the number of minutes of inactivity exceeds the threshold determined by the administrator, the user’s browser will automatically be opened by Time Clock. When the user is active again at their workstation, the user is presented with three option, “Taking a break”, “Working diligently”, or “Let me explain”. At that point they will click the most appropriate option and if necessary add a comment. This information can then be used by the administrator and user a like to better keep track of performance in the office.
Screenshot of Time Clock dashboard.
One of the biggest challenges of this project was making the Java application able to detect activity of the user. Java applications, traditionally can only track activity within widows created by the Java Virtual Machine (JVM) for reasons security and the portability. I was able to overcome these shortcoming by Java Native Library (JNA) which allows the program to access Widows native libraries. By using JNA package Time Clock was able to use the core functionality that determines if the computer has been idle.
You can read more about the JNA here.
Time Clock was commissioned by Source Consulting who now use it in their corporate office in Irvine CA.