FreeTime 0.1
Written by R. Rawson-Tetley August, 2005


Background
======================

My employer ditched our custom written, web-based timesheet system and
decided to buy an off the shelf product called "CentralTime" from 
TimeWatch PLC (http://www.timewatch.com)

The client for this thing promises to have a web interface (which they
didn't buy and looks like an ActiveX control to me anyway and thus useless
for our purposes), a horrible Windows-only client that either uses SMB 
shares to exchange data files or a MAPI compliant (read "Outlook") mailer 
to send the data via email. I'm sick of running XP in Qemu just for this 
poxy piece of software so I've written this free client for it.


Formats
=======================

Thankfully, whilst the product is (in my opinion) truly awful, the file
formats used for communication is relatively straightforward and I had
no trouble reverse engineering it. Data is basically packed into variable
length CSV rows, with the first field representing type (if you look at
the source, you can see I created two new java classes - CSVMap and CSVRow
to manipulate data in this format, and unlike their native client, we even
store the data in this format in the user's home directory as ~/.freetime)


How it works
========================

Since we have no chance of getting MAPI working on a non-Microsoft platform
(read up on it - it's heavily based on DCOM), this client relies on the 
SMB share method - you mount the appropriate share in your *nix filesystem
and set it as the "timewatch.directory" setting in ~/.freetimerc you need
to identify the PersonalTime group (.PTG file) that represents you in this
directory and set it as the timewatch.group setting in .freetimerc - the
other values are related to the OOWeb webserver used to run the program.


Using the program
========================

Very simple - use the "Update" option to load in update files from 
CentralTime. These are .pts files which appear with your groupname in the
SMB share. After running this the first time, you should see your
employee name and code appear along with all the projects you are assigned
to on the main screen. After performing an update, the data is stored in
~/.freetime and the .pts file renamed to .pbs

Use Add/View to look at the current timesheet data you have entered and add
new rows.

When you want to submit timesheet data to personaltime, use the post option
on the main screen. Note that posting does NOT lock data and it is possible
to repost the same time (so be careful about this and get into the habit
of posting weeks at a time) - this is deliberate as CentralTime seems to be
extremely flaky and our accountant often asks me to resubmit my timesheet
as CentralTime seems to have eaten it.

