GnoTime: Keep your projects under "timing control".

TODO list / diary / journal tool

GnoTime - The Gnome Time Tracker (GTT)

GTT is a to-do list/diary/journal tool that can track the amount of time spent on projects, and, among other things, generate reports and invoices based on that time.

It's being used to keep shopping lists, organize ideas, track bug reports, keep a diary of activities, do some blogging, provide weekly status reports to management, and even as a consultant billing system.

The reason it can be used for all of these things is that it supports five basic, simple features:

  • Multiple To-Do Lists that can be sorted by the priority/importance of the tasks in the list. The to-do items can be organized into categories, arranged in a hierarchical way. This makes it easy to maintain both business and personal items in the list, or handle many different projects, while keeping them separate from each other.
  • A pair of Diary/Journal areas that can be used to keep long and detailed notes and diary entries. The project description area allows a multi-paragraph description or status to be typed in. The diary area allows day-to-day notes to be associated with a set of timestamps, so that one has a record of what one did on any given day.
  • A Running Timer, with time totals, for each project/task. One starts the timer by clicking on a task: it will measure the amount of time that you are in front of the computer. If it detects that the keyboard/mouse are idle, it will stop the clock. If the clock stays stopped too long, it will nag you to start it up again. You can view time totals by day, week, month or year.
  • A Billing Status dialog for each diary entry. You can mark any given diary entry as bill-able/non-bill-able, paid or pending, and set the billing rate. Each project can also be marked up with a set of project-planning information: planed start, end and due dates, hours to finish, percent-complete. This is in addition to assigning an urgency/importance to each project, as well as a status (completed/in-progress not-started/canceled).
  • A half-dozen different HTML Reports that can slice and dice your lists. There's a Journal report that shows all of the diary entries for one given project. There's an Invoice report that summarizes the time spent on each entry, and computes a dollar amount for it. There's a Status Report that prints the title of each project, together with the paragraph-long descriptions of each. There's a ToDo report, which prints only the project title, the importance/urgency, and the completed/in-progress/not-started status. The Daily report summarizes the total time spent on a day-by-day basis, and lists each of the projects that were worked on in a given day. Each of these reports can be customized. And, because they're HTML, you can even publish them as web pages. (Yes, I've thought of using GnoTime as a weblog management/publishing tool).

More About Some of These Features

We'd like to tell you a bit more about some of the features. But first, we want to tell you that GnoTime is Free Software, distributed under the GPLv3 License, for the Linux, Mac OSX and other Unix desktops. No, it does *not* for MS Windows. Sorry.

Simple GUI, Simple Navigation

We've strived to design the GUI as simple as possible, but we're not done yet according to our standards. GnoTime will auto-save data, so that you don't have to. Therefore, there is no data loss in case of a crash. The hierarchical tree of projects is managed through drag-n-drop, and can be navigated from the keyboard, with arrows keys and carriage returns. The left/right arrow keys expand/collapse project lists. Hitting return starts and stops the timer.

Auto-Merge/Cleanup of Short Intervals Support

We also try to unclutter a mess of timer stops/starts by trying to clean up time-keeping cruft. Extremely short time intervals are automatically removed from the logs. The lebgth of such intervals is configurable. Slightly longer but still short intervals are auto-merged into nearby neighbors. Short gaps between intervals are coalesced as well. You can specify a time period of 0 seconds to turn these features off.

User-Customizable HTML-based Reports

The journal/report GUI is based on template HTML pages. If you know HTML, then you can create customized report pages. Particularly handy for slapping the company logo and mailing address on the top of the page, and generating a unique, custom look. User-defined reports (contained in ghtml files) can be added to the menus by typing in the filename into the 'New Report' GUI dialog.

Admittedly, hacking on HTML templates is not the easiest thing in the world: you can't (yet) customize reports with a WYSIWYG editor (although we are contemplating one). But we figure that HTML can't be that hard: the nerd in you will not be intimidated. It might be a bit scary to mention scheme at this point, but lets just say that you can be totally ignorant of scheme and still be able to do some pretty fancy customization, above and beyond what HTML lets you do, by hacking on the scheme in the report templates.

Fresh in version 2.1.9 is the ability to embed simple SQL queries in the report templates. We know that many of you power users know SQL, so we figure you'll like this. The SQL gives you the ability to query for only those projects/tasks that meet a certain criteria, which is handy if you've got years worth of data and years worth of project lists and to-do items, and you want to just fish out the ones from last month.

Disclaimer: we're still working on SQL support. It works, but you can't yet query everything.

Shell Commands

A shell command can be executed whenever a project timer is started or stopped. The project title, description and other parameters can be passed to the shell command. We don't know what the hell you power users do with this feature; its been in GTT since the very earliest releases.

XML File Format

All project and journal data are stored in an XML file format. The XML file accurately reflects the internal state of the GnoTime data, and therefore generic XML tools should be able to perform interesting transformations on this data.

Multi-Language Support

The GnoTime menus and messages have been translated to dozens of languages. There are message catalogs for the following locales: az bg ca cs da de el en_GB es et eu fi fr ga gl hu it ja ko lt lv ms nl nn no pl pt pt_BR ro ru sk sl sv ta tr uk vi wa zh_CN zh_TW .

Some of these translations need an update; they're quite old and out of date. We need help here. Translations are needed for the manual. Actually, the manual needs a complete re-write; its three years old, and doesn't discuss most of the newer features.