offers a series of articles following the IBM Internet Technology Group as the team designs, develops and deploys a community website utilizing the best of Open Source technologies.

These articles are meant to offer insight into the development process of complex websites, and offer key comparisons and recommendations as the team describes how and why they decided to use Drupal as the platform of choice for complex web applications.

A few excerpts:


Using open source software to design, develop, and deploy a collaborative Web site

Today, Web sites are a critical part of business, and the tools to create and deploy Web sites are becoming more flexible and easier to use. However, the production of complicated Web applications that require more than the standard methods of interaction (such as blogs) is not trivial.
To ease our own development process, we wanted to use an existing content management system to help generate a timely solution. Most content management systems could support the basic functions we needed, but there was an obvious need for detailed customization. An out-of-the-box implementation was not going to be sufficient.

An open source content management solution

There are many ways to manage your Web site content, […] ultimately, we chose Drupal. However, it is useful to describe the rationale for our decision.


    "Drupal is software that allows an individual or a community of users to easily publish, manage and organize a great variety of content on a Web site. Tens of thousands of people and organizations have used Drupal to set up scores of different kinds of Web sites, including:

        * Community Web portals and discussion sites
        * Corporate Web sites/intranet portals
        * Personal Web sites
        * Aficionado sites
        * E-commerce applications
        * Resource directories

Drupal includes features to enable content management systems, blogs, collaborative authoring environments, forums, newsletters, picture galleries, file uploads and download, and much more. Drupal is open source software licensed under the GPL and is maintained and developed by a community of thousands of users and developers. Drupal is free to download and use." (Source: CMS Matrix)

Decision to use Drupal

Because we needed to make this Web site design easy for ourselves and anyone adopting the solution, the ease of installing the framework and the time it would take to figure out how to use it was a key factor.
If we were to be able to effectively control access to the information for each persona, having robust and flexible session and user management would make our implementation easier. Of course, the speed of implementation would also be improved by having a robust pluggable infrastructure backed up with a vibrant community contributing quality extensions to the existing framework.

Another key aspect was the potential to ramp up the scalability as the number of concurrent users started to increase.

The ease of adjusting the way the content was displayed was crucial; we needed to remain flexible during iterations of the design and any future adjustments. This so-called "themability" also was required for using the current best practices of Web design with respect to semantic xHTML, CSS, and accessible design.

Drupal in detail

Drupal contains many built-in features and is easily extensible with a vibrant community supporting and adding to the portfolio of additional features. The basic features include:

  • Friendly URLs using Apache's mod_rewrite capability
  • Easily extensible using Drupal's module framework (The community has developed many useful modules that provide functions such as taxonomy display, jabber authentication, private messages, bookmarks, and so on.)
  • A personalization environment for individualized content and presentation based on user preferences
  • Role-based permission system to define access to the viewing and editing of content
  • Content is fully indexed to support search
  • Drupal is written on top of a database abstraction layer, so the framework can be easily extended to other database back ends
  • Support for other content forms such as polls, threaded comments, and discussions and content syndication
  • Separation of content from styling in a templating system that uses HTML, CSS, and PHP
  • Administrative support for logging, analysis, and Web-based administration
  • Online help


Extending Drupal

We used Drupal's module framework to add the extended features we needed to support our Web site. The extended features include:

  • Creating an extranet environment -- a closed access site that requires authentication before seeing any information
  • Session expiration based on user interaction with the Web site
  • A terms and conditions policy implementation
  • An extension of the existing content editing interface to provide "in place" editing (For example, show an authorized user what they can edit in the context of the Web page and allow them to elect to edit that content there and then.)
  • Management of announcements to publicize general information that all members should see
  • Management of working groups mission, current status, action items, and so on
  • Management of the creation of conference sessions and agendas using Ajax to help the administrative interface
  • An extended view and administrative interface for member information and the search of this information
  • Additional blocks of information displayed as a sidebar to display contextual data based on the members role and data they own or create
  • A weekly digest of information e-mailed to members interested in specific areas of content


Read the full article:

Using open source software to design, develop, and deploy a collaborative Web site, Part 1: Introduction and overview