About IT and Sports

My Web development experiences and sports encounters

Flower

Posts Tagged ‘CMF’

Building webapplications on top of Drupal

Drupal is best known as one of the most popular CMS products used on the web. But the Drupal community likes to call Drupal a Content Management Framework; a tool which gives you the ability to quickly and efficiently tailor a webapplication to your needs. Drupal is not just a content publishing tool but can be used on a broad range of applications.

Web applications often contain functionalities which CMS tools also have. Users need to register and login. Autorisation is needed to distribute permissions. A template engine separates data from layout. You want to have tools for consistent interfacing. These are a few important functions you will probably need  in every web application. But there are many more which might be useful in the more specific requirements of your project.

An important part of the Drupal framework is the module system. It gives you the ability to separate custom code from the Drupal core and  modules. This makes updating Drupal to newer versions much easier and packages functionality in a orderly fashion. Drupal furthermore gives modules the ability to hook into core functionality. For instance to create new url’s or to change forms.

A good example of a webapplication we have build at Colours is the web application for the anual World Press Photo contest. This application contains 3 parts:

  1. A frontend in which photographers can register, upload and manage their photos
  2. A backend for administration of photographers and uploaded photos
  3. A tool for judging photos

A custom tailored web application was needed to accomodate for a high performance website and complex functionality. Good performance is need to smoothly upload 100.000 large photo files in a short timeframe. Most of the images are uploaded in just a few days before the deadline. During the upload proces some cpu and memory consuming operations are needed to convert images to a custom size. A separate imageserver was responsible for image conversions. The webservers communicated with the imageserver through SOAP webservices. We used the YUI Uploader to facilitate a user friendly(multi file select, progress tracking) and high performance (faster upload, asynchronous events) method of uploading files.

The backend functionality for administration and judging implement the Contest rules. These screens make good use of the Drupal Form api to efficiently create forms and permissions to implement autorisation.

A more specific functionality is the link to Salesforce CRM. A contributed module was used to make the connection to Salesforce. Custom code was writen to map the custom user profile to the specific user account fields in the CRM database.

Drupal offers an excellent environment if you want to mix a CMS with specific application functionality. You can easily use what the Drupal core has to offer. Use contributed modules to incorporate more specific functions. All this gives you great power and flexibility.

Dutch version posted on drupal.nl:
http://drupal.nl/forum/webapplicaties-bouwen-met-drupal-world-press-photo-case

This article was originaly posted on the Colours blog which has recently been taken offline.