Doco Home Tutorial Home

Platypus Tutorial: Timesheet Application

In the tutorial, we go through a idealised development process, in the following steps.

Step 1: done by hand
Create a database schema and the artist's HTML.
Step 2: done by script
Create the top level directory structure.
Step 3: done by hand
Copy in and mark up the HTML
Configure the Makefiles
Create files required by the Makefile system
Generate the data layer
Step 4: done by script
Generate a skeleton configuration file for each PO
Step 5: done by hand
Edit the configuration files
Step 6: done by script
Generate the skeleton Java
Step 7: done by hand
Edit the Java
Step 8: done by script
Compile the app

We have taken a snapshot of the directory tree after each of these steps. The changes made to a file in a given step can be viewed using CVSWEB.

The edits to the HTML files do not show up in CVSWEB. This is because they are copied into the src/ directory, and fully edited, within one step. The edits can be seen by comparing the HTML in the artist/ and src/presentation/ directory trees.

Note: Most of the action happens in the src/ directory. In Platypus, all the files edited by the developer are in this directory. The timesheet/ directory is reserved for autogenerated files.

Snapshots after step are shown in the directories here: .tar.gz, .zip. Note: We have a numbering mismatch. Slice 0 is the result of Step 1, and so forth. This will be fixed ASAP.
Files created by step: 1   2   3   4   5   6   7   8   
Files altered by step: 1   2   3   4   5   6   7   8   

This process is described in more detail in the following pages:

  • Step 1
    Database Schema and Prototype HTML

  • Steps 2 and 3
    Directory tree setup, making DODS code, HTML markup, etc

  • Steps 4 and 5
    Creating and editing PO, Database and Query config files

  • Steps 6 and 7
    Billabong, Squirt, and Hand editing the generated Java

  • Step 8
    Final make


  • If you want to run the timesheet and would like some mock data for your database, use the load scripts in this directory.

    The development process depicted in this tutorial is rather idealised. A more realistic development process is described in the Hints section.