1

Re: Progress update - November

For anyone interested in following how we are getting on with the coding, here's a summary of what was achieved in November:

Evaluated Kohana vs alternatives (CodeIgniter, CakePHP and Ruby).

Basic XHTML and CSS template with JavaScript menus that degrade gracefully.

Database Design

Core Module login, user maintenance, password control (needs refinement and testing).

Ability to list, filter and sort any sort of data on the core module using a generic grid control.

Designed an approach to displaying and editing the details of any record in the Core Module's database.

Using the grid control and the details display/edit design, we have implemented add/edit and view for the following:
1) A list of websites associated with the core module
2) A list of people
3) A list of users (linked to the list of people)
4) A list of species/taxon lists with a simple approach to parent/child lists.
5) A list of taxa on a taxon list
6) A list of termlists with a simple approach to parent/child lists.
7) A list of terms on a termlist.
8) A list of surveys that can be attached to a website.
9) A list of languages available for associating with terms and taxa.

Designed an approach to CSV upload and implemented it to test against the websites entity. We are in the process of attaching this to the terms and taxa.

Designed an approach to auto-complete text boxes using AJAX.

Written a data service that provides read access to all the main entities in the data model. Implementing new entities can be achieved in a few minutes work. Either single records or record lists can be retrieved using a RESTful web service. The service response can be formatted using JSON, XML, CSV or a custom format (e.g. a list of html <li> entries). The amount of information obtained for each record can be configured - for performance reasons an AJAX request is likely to only require an ID and caption for each item, whereas a request for the details of a record to display on a details page might want the data as XML formatted using xsl, for example.

Started writing a data service that provides write access to all the main entities in the data model. We have already written the ability to take json data for a record and insert or update the database record with it, this just needs to be linked to the service and should be done today.

Designed, but not implemented, a digest approach to authenticating the web service calls.

Implemented the basic structure of a validation library, with a "Check item on list" method available for testing taxon and term names.

Started work on installation and upgrade procedures.

So, a good first month I think.

John van Breda
Biodiverse IT