Drupal Projects

As the number of drupal projects I am involved in is ever increasing, I thought I would list a few of the more interesting drupal modules and techniques I have been working on.

Quick User Contributions and Maps

I was given the task of setting up a community site for Edinburgh Antiques, listing stores and services for antiques in Edinburgh. A small amount of user feedback was required - the ability to rate shops/services and to tag the types of things you may find in a particular shop. As I wanted to make this type of feedback quick and as least disruptive to the flow of viewing the site as possible, AJAX techniques were used. As Edinburgh can be difficult to navigate for visitors I also integrated Google Maps to allow direct interaction with the map to locate key services (this lead to known problem with AdSense and AJAX interaction, and I have blogged about a new solution).

Edinbrugh Antiques Website

Web Statistics

There is a wonderful web analytics and statistics reporting tool called AWStats (written in perl). This provides comprehensive data about websites from the web server logs. I wanted to view this data from within drupal, rather than using the perl CGI provided in AWStats. Thankfully, a project called betterawstats was under development to provide a php interface to the perl database, and this could be leveraged to create a drupal module. This project is released under the drupal.org site as BAWstats. Oliver, the betterawstats developer, has now merged my changes and drupal code into the project, so the two projects should now develop nicely in tandem.

BAWstats drupal module

Mash-up Technology

Some time ago I created a test-bed for developing novel mash-up technology (using reinforcement learning techniques). The test-bed was to mash together cinema information for Edinburgh cinemas and is running with little (if any) human intervention at movimash.co.uk. Although this is not developed in drupal (nor even in php, the entire code is written in python), it has provided some useful tools I now use in some of my other drupal sites. In particular, automated news and events aggregators (for example, used on the Edinburgh Antiques front page).

Movie mash - mash-up technology

Client Side Encryption

I started this project some years ago to provide a way of collaboratively working on shared projects in a public forum with the ability of keeping parts of the information secure. In particular, we were discussing certain system administration tasks and wanted to make the techniques publicly available while having the specific details (like IP addresses etc.) securely hidden. The drupal module uses JavaScript (i.e. "client side" - in the browser) to perform all the encryption/decryption, so no unencrypted data crosses the network. The Client Side Encryption module is available at drupal.org/project/cse, you can also try a demo. I have just ported the key JavaScript AES code it uses to a JQuery pluggin, but haven't distributed this yet, if anyone wants it let me know.

Client Side Encryption - drupal module

Light Weight eCommerce

I needed particular ecommerce facilities for a site I have been working on that runs under drupal 6. I also wanted something with a light-weight code base. The "e-commerce" module is not yet out for drupal 6 (and with no release date). Other options were too heavy code-wise or didn't provide the features I needed (including PayPal and Google Checkout). I put together the specification I needed and built a light(ish) drupal 6 module to do the job (called eStore). It uses taxonomies to organise the products and create the menu, provides different methods of selling items (fixed quantities, user selected/entered amounts), secure user registration/checkout, PayPal/Google checkout, encrypted database and order processing facilities. It is currently used at a new Edinburgh based tea shop (opening soon I think). Once I have tidied up a little, I will make the module generally available.

Elegant Tea Shop using the eStore module