Skip to content

eTimeKeep

Hours: ~600. Produced: 2007 – 2008.

eTimeKeep is one of my largest personal projects. It’s an employee management application for small-to-medium companies. It features a people-friendly approach to project management, while in the same time offering a great degree of task progress supervision for managers.

Screenshot of eTimeKeep Users Window

The eTimeKeep Users Window

I built eTimeKeep for Wildcard Technologies, a company which I started with a partner and in which I had a 50% ownership stake. Since our company featured a highly flexible schedule (especially because we worked with American customers and we had plenty of student employees), we required a way to correctly track the time each employee spends inside the company.

Even more, I wanted to add a system through which employees could write their status reports. I took the idea further and further away and literally poured 3 months of my life in it. I tried to make things very easy and intuitive for everybody, presenting a wealth of data as clearly as possible. I really loved working at it and I am proud of what it is, even today, 3 years later.

So, without further delay, let’s take this baby for a spin! You can continue to read this post if you’re interested in the text & images approach, or, if you prefer videos, check my eTimeKeep Videos Page. You can even install eTimeKeep yourself! I got a nice clean NSIS installer ready for demo purposes. Contact me if you want access.

As you can see, eTimeKeep puts a focus on people, rather than boring task screens. The first thing you will see when eTimeKeep starts are the (hopefully happy) faces of your (hopefully loved) colleagues. If you don’t like somebody, you can always collapse their picture though, *grin*.

eTimeKeep features a User Interface built using DevExpress controls, which enrich the UI experience and provide a wealth of functionality to .Net Developers, speeding up development time. I’m no DevExpress evangelist, but they really do rock ::- ).

Technical Aspects

I used MySQL as the database engine, a decision I am very happy about: I can now host the eTimeKeep back-end on any kind of server, including very cheap collocated Linux machines. In order to use it in .Net, I used components provided by MySQL and, to speed up my development, I used Strong Typed Datasets.

One of the strong points of eTimeKeep is that it’s very secure. And I mean, VERY secure. I’m not paranoid, but I wanted to see how far I can go with .Net from a security standpoint, without having to obfuscate any source code.

eTimeKeep uses the following forms of encryption:

  • Asymmetric Key RSA
  • 256 bit Rijndael keys
  • SHA keys

I won’t list the full details about how the encryption mechanism works, but I may reveal it to you if you pay me lots of money and give me a nice cup of hot black tea ::- D. Earl Gray is preferred.

So. I already said that eTimeKeep focuses on people. But that doesn’t mean it’s not, after all, a project management tool. eTimeKeep is based on the well known, tested&trusted Project->Task->User structure.

(Really) Short Presentation

All eTimeKeep users are permanently assigned to a task. If they’re working at nothing, they’re assigned to a “Generic Task”. That task can be used to determine how much “idle” (read “wasted”) time is the company “making”. Usually, all eTimeKeep users will try to stay away from the Generic Task. And they do that by picking themselves a Task to work at, using the screen below, which lists Tasks in a nice hierarchical grid. The user will only see the Tasks they have been assigned to.

Screenshot of eTimeKeep Pick A Task Window

eTimeKeep Pick A Task Window

At the end of the day, all employees are required to submit an activity report. If they don’t do that, they will start having “Missing Reports”, as you can see in the User List image above. Employees with a missing report were reprimanded with 50% of their salary. At the second missing report, they were fired and sent to labor camps.

Screenshot of eTimeKeep Report Completion Screen

eTimeKeep Report Completion Screen

Users with administrative privileges, team leaders, project managers or project clients can add new tasks to the projects they have permissions to. The company managers, of course, have full access everywhere. The permission system is very flexible. Users can be arranged in Groups, Teams or Departments. Furthermore, projects may be lead by a user or by an entire team. Teams can also be led by users. Groups and Departments are used for further segregation.

Screenshot of eTimeKeep Task Creation Screen

eTimeKeep Task Creation Screen

There is also a very handy Task Management screen. Here, you can set, approve and review Task Progress and add or remove users from Tasks. To keep things clean & tidy, completed tasks are gradually removed from the list. There is no “version” filter: things are obscured from view so that its never cluttered without the user needing to do much.

The grid can be filtered by any field simply by clicking on its columns, when a custom filter builder will pop up. It can also be grouped in all imaginable ways by dragging the columns to its header. Whenever you wish to view pruned tasks, there is a checkbox that allows that too.

Screenshot of eTimeKeep Task Inspection Screen

The eTimeKeep Task Inspection Screen

The Add Users screen can be seen in many places in eTimeKeep: when you assign users to a Task (either at creation or later), when you want to add more recipients to a message, when you want to see the charts or reports only for a certain person and so on.

Screenshot of eTimeKeep User Selection Screen

The eTimeKeep User Selection Screen

And since we just talked about reports, here is the nice screen which allows managers, team leaders, project managers and clients pull reports from the system. It supports all kinds of filters and can even export data to common formats such as Excel, text and CSV.

Screenshot of eTimeKeep Reports Screen

eTimeKeep Reports Screen

Here’s a snap of the messaging system too. It shows a message sent by the system to a user, once he has been assigned to a task. This same message window is also used for inter-user communication. This is not an instant messaging solution, for that, we got The NeverFail Messenger^, which, at a certain point, I wanted to integrate with eTimeKeep.

Screenshot of eTimeKeep Task Notification Message

An eTimeKeep Task Notification Message

As I said, eTimeKeep features some very nice data presentation systems. Let’s see how clients, team leaders or project managers track progress.

Well, first of all, we got charts such as the User Presence chart, where you can see the exact number of worked hours, per user, per day, in a nice 3D graphic which can be rotated & zoomed using the mouse. Of course, filters are ready to help narrow down the results and explore them more easily.

Screenshot of eTimeKeep User Presence 3D Chart

eTimeKeep User Presence 3D Chart

Want more details? No problem. The Daily Presence Chart offers highly precise details about a user’s day, including time when the user left the computer for whatever reason, when the user switched tasks, when he arrived at the company and when he left. We got all this data without using systems such as electronic cards installed at every door. eTimeKeep is able to determine when the user is not at the computer using hardware monitoring of keyboard and mouse movements (without logging anything, of course).

Screenshot of eTimeKeep Daily Presence Screen

eTimeKeep Daily Presence Chart

But enough with the users. Let’s look at some tasks. We do that using charts such as the Effort Per Task, which lists the exact number of hours worked at a certain task, together with a nice chart showing each user’s contribution.

Screenshot of eTimeKeep Task Effort Chart

The eTimeKeep Task Effort Chart

The Administration Application

eTimeKeep is not only about the database and the Client-side which I just presented. It also has an administration tool, which is a completely separate application. This application is VERY important.

The Admin Application is used to generate the very important encrypted fingerprints, signatures and other secret sauces. Again, I won’t go into much detail here, because I’m afraid of the CIA and the Mossad. Suffice to say that the eTimeKeep client can’t even connect to a database without the vital files generated by its Admin.

Screenshot of eTimeKeep Admin Tool Login

eTimeKeep Admin Tool Login

Naturally, only company managers have access here.

Besides generating the keys, this Application is also responsible with approving users. This is another highly secured process which is based on scanning a user machine’s hardware configuration, down to the hard disk serial number, ethernet MAC and other highly explosive stuff I won’t say because I’m afraid of the NSA and the MI6.

Screenshot of eTimeKeep Admin Tool User Validation Page

eTimeKeep Admin Tool - User Validation Page

To be continued?

I think that’s enough eTimeKeep for now.

I don’t know if I will ever work at the project again. I packed it carefully, with extra perfume and lots of comments in the code, so I know that when I will, I’ll at least have a nice environment waiting for me. For now, however, time simply doesn’t allow me to deviate from my present course, one which is quite different than what I was doing back in 2008.

See you on the Login Page! ::- ).

Screenshot of eTimeKeep Login Screen

The eTimeKeep Login Screen

Spread The Love, Share Our Article

Related Posts