Whid 1.00

Whid is a simple application that keeps track of time.

  Add it to your Download Basket!

 Add it to your Watch List!


Rate it!
send us
an update
GPL (GNU General Public License) 
2.3/5 17
Jarle Aase
ROOT \ Office \ Scheduling
Whid is a simple application that keeps track of time. You can use it to see what you actually did today, or you can use it to keep track of time spent on projects.


In 1998, I felt that I totally lost control with time. My Free/Open Source projects lagged behind their time-schedules, and I was unable to account for how I spent my time. I also needed some way to keep track of the time I spent on commercial projects. At that time I also wanted to learn more about C++ and the Standard Template Library stl. I spent a few months writing a small program in C++/MFC/stl that kept track of my time usage. I named the program “wtm- War Time Manager”, and the intention was to release it as free software. But my experience with free software at that time was not too good. Releasing something meant lots of work; all kind of people would contact me for support or “business opportunities”, and I simply had far enough of this constant rush of emails with my existing software. So I used the program myself and only gave it away to a few people I knew that were in need for it.

In the spring of 2006 I read the book “User Interface Design” by Soren Lauesen, and a single illustration in that 600 pages book inspired me to think about a new time management application. WTM was able to do lots of things, but it was unable to give me a quick summary about my current status. The example in Sorens book was so obvious, and elegant, that I simply thought “I want that!”.

The idea behind Whid

The idea behind WTM and WHID is very simple: When I start to work on a project I click on the project and the “Start” button. Then the meter is running until I press the “Done” button. If I am interrupted by a new customer, I click on his project and press the “Start” button again. The previous meter for the project is put on hold, and the meter is running for the new one. When I press the “Done” button, the previous project becomes the current project, and the meter is running again. If I take a break, I press the “Pause” button and the meter is put on hold.

WHID is also a program designed for people who work with projects in an office. People like me. I'm lazy, and therefore I've made WHID as easy to use and foolproof as I can. I like to work with my source code. I don't like to to write lists of hours or bills or accounting at all.

Here are some key features of "Whid":

¬· Very easy to use
¬· Multi-language support (currently English and Norwegian [bokm•l])
¬· Can keep track of time on ongoing projects just by pushing one button
¬· Flexible (optional) invoicing of time spent on customer projects
¬· Powerful rules for rates (how much to charge for time spent on projects)
¬· Click one button to see the status (progress) for the current week
¬· Reports can be outputed as XML - makes it easy to format the reports any way you like
¬· Very powerful (but currently undocumented) external scripting interface for C#, Visual Basic, Python, Java and php5. Can even be used by C++ programs tio access Whid's internals.
¬· Single or multi-user mode
¬· Can store it's data in a singe file (Sqlite) or use the MySQL database engine
¬· Backup and restore in XML files

Design Goals

When you create a software package - you must have some design goals in order to pick the right technology. The Design Goals defines the phremises for how the application is created.

¬· Multi-platform. I use both Linux and Windows, and need to use the application on both.
¬· Three-layer Client/Server design. - Also a full separation between the user-interface and the business-logic. That means more work while the application is made, but makes it a lot easier to maintain later on.
¬· SQL database storage. The problem with WTM was that it stored all data in memory while it was running, and after a few years it started to consume too much memory.
¬· Multi-user, so that it can be used by a company with more than one employee.
¬· Simplistic. The program must be good at what it is designed to do and nothing else. There is to much bloatware out there.
¬· Multi-language support. It must be easy to translate the program into new languages.

How Whid is built

This is the current status of how I have met the Design Goals for Whid.

¬· GUI (Graphical User Interface) based on wxWidgets. This is a multi-platform GUI toolkit that makes it relatively easy to use the same C++ source code under Windows (Microsoft) and Xwindows (Linux).
¬· Multi-language support is handled by wxWidgets/GNU gettext. ¬· The log-file and some critical error-messages are in English to simplify support. The initial release comes in English and Norwegian.
¬· ICE (Internet Communications Engine) as middleware. This is a toolkit that separates and encapsulates the business-logic. ¬· Currently I run the server and client in the same physical application, but it is easy to separate the two in a future version if the demand should arise. It also have the nice side-effect that the program can be scripted with C#, Visual Basic, php and Python! The business-logic is easily available for other programs, and a web-counterpart is therefore very easy to make.
¬· Database abstraction trough “warlib” (my C++ library). The default database is “sqlite”, an embedded SQL database that keeps its data in a single data-file. MySQL is also supported, and this is what I use (it's a lot faster than sqlite, but require MySQL to be installed somewhere). Data can be migrated between the databases trough the database backup/restore feature.
¬· The initial release is for Windows. The application compiles and runs under GNU/Debian Linux “etch” and will soon be available as pre-compiled binaries for Debian. But I have to fix a few bugs before the Linux version is released.

Last updated on September 27th, 2007

#time tracking #track time #print invoices #tracker #invoices #track #control

Add your review!