[Clug-work] UCT Spatial Data Management group web development work

Melissa Loudon melissa.loudon at gmail.com
Mon Mar 16 14:51:42 SAST 2009

The Spatial Data Management group (www.spatialdatamanagement.uct.ac.za) at
the University of Cape Town is looking to contract a piece of web
development work on a cellphone-based water quality management system being
developed as part of the Aquatest project (www.bristol.ac.uk/aquatest).
There is an existing functional prototype of the system, and the mobile
client, test result viewer and database components are completed to the
level required for an initial implementation. The work we require is mostly
in the back-end, managing data input (verification and confirmation incoming
data and returning appropriate error responses if needed) and database CRUD

General specifications:


   The language used should be PHP (5.2+), because we feel this will be
   easiest to maintain in context of a non-specialist research group

   We'd like you to use an appropriate MVC framework, again with a view to

   A small part of our database deals with drinking water quality test
   parameters, using the EAV(entity-attribute-value) model. Your solution would
   need to support this.

To get an idea of the existing components, have a look at the following:


   A basic end-user web interface is at
http://spatialdataresearch.org/demo(use username:manager

   The mobile client is a JavaRosa application (http://code.javarosa.org/).
   JavaRosa uses Xforms to accomplish generic, standards-compliant data

   The database is PostgreSQL, with PostGIS extensions for spatial data

 *Deliverable 1: Database Abstraction Layer*

As a building block for future work, we'd like you to implement database
models that can be used by all the components that need to talk to the
database. You can do this using a framework like CakePHP (which has MVC and
database abstraction components), or as a standalone component. We'd prefer
you to use something that already exists rather than writing it from

*Deliverable 2: Form verification and database insertion module*

The basic data input to the system is information about a water sample taken
in the course of routine drinking water quality monitoring. This is sent
over via HTTP, either as XML (see below) or as a key-value pair string. We
need this component to do the following:


   Dump the raw POST data to a log table, along with the submission time.

   Parse the XML or key-value pair string into an array.

   Attempt to insert the sample data and values measured into the database.

   Return a success confirmation message, or if necessary, an error message.

   Update the log table with the result of the submission (success

The error message needs to contain a relatively high level of detail. Store
error codes and status messages separately from the code, in a text file or
database table.

*Deliverable 3: Web view for database CRUD operations*

We need to provide an easy way for a system administrator to add sample
points, delete readings that have been submitted in error, etc. The
administrator view should provide:


   Authentication (username/password)

   Basic CRUD functionality for database entities

   For the sample and parameter EAV entities, CRUD functionality should be
   based on a 'user view' rather than a database view.

   The user should be able to add a sample and record all the values
   measured in that sample, in one operation

   The user should be able to add a new parameter and record the
   acceptable/not acceptable range for that parameter according to one or more

   Logging of create, edit and delete operations for auditing purposes

*General considerations*


   This is an open source project, and we plan to release all our code under
   the GPL. When considering libraries/frameworks, be aware that we cannot use
   anything under a license that is not GPL-compatible.

   Basic code-level security is important. You will be asked to explain how
   you plan to secure your code.

   Because we need to ensure that the system is easy for other to modify in
   future, both your design and your code will be subject to regular review.
   You will also be asked to provide technical documentation.

   We would like you to follow the Zend coding
possible (excluding third-party components you might use).

If you're interested, please mail me a CV, including links to previous work.
If possible, please also provide an estimate of how long you think each
deliverable would take.

Thanks very much,


Melissa Loudon
Research Officer, Spatial Data Management
Department of Civil Engineering
University of Cape Town

melissa.loudon at uct.ac.za
+27 21 650 3837 (internal x3837)


More information about the clug-work mailing list