Best Approach for a Quick & Dirty Desktop Application

by Phil Hughes

I have decided to let the geeks out there solve a problem for me. The problem is writing a quick and dirty solution to a temporary problem. I have an idea but I am interested to see what others have to say.

The application is for some not very fancy record keeping. You could call it a payroll system but it has few of the characteristics of a real payroll system. Also, it is temporary—in a few months it will be no longer needed. It is for the Geek Ranch project and is to keep track of "casual labor".

We have anywhere up to 50 people working on various construction projects. They are paid (in cash) every two weeks. Their pay is based on days worked during the period at a daily rate. The "twists and turns" are minimal (getting paid for seven days if they work six, for example) but that can pretty much be dealt with by hand.

There are reasons this becomes a database project rather than just a spreadsheet.

  1. We want some sort of error checking on data entry and it seems easier with a database
  2. There are a couple of balances that accrue (vacation and a "13th month" pay that accumulates and gets paid out once a year). We want to keep track of this and also print info to put in the General Ledger that reflects the wages we pay out plus the liabilities we are accumulating.

For data, I see three record types:

  • Employee—name, ID number, start date, current pay rate, ...
  • Pay—The data we enter each two weeks.
  • Comment—General-purpose info that just includes a timestamp and a comment field.

Transactions are limited to:

  • Enter/update employee record
  • Add/update a pay record
  • Add a comment record

Reports consist of:

  • Generate a pay report (selecting by a particular person and date or all on a particular date)
  • Payday ledger showing who got paid what plus the liability updates
  • Employee summary showing the employee info and all related records

By "report" there is absolutely fancy here. This can be just fixed width characters on a piece of paper. Again, think temporary.

The person using this will be at a KDE desktop. They are not a computer geek (and, if it matters, they only understand Spanish). The whole program can be running on their workstation (only one person really needs to access this) or it can use a web interface from a local server. Postgres is running on a server (to support another system) or sqlite could be used.

If there is code to be written, I would prefer Python but other possibilities (from Awk to PHP) exist.

That's the story. Tell me the "best way" to do it and, if possible, why your way is best.

Load Disqus comments