GSoC/GCI Archive
Google Summer of Code 2010


Web Page:

Mailing List:

Drupal is a web content management system and web application framework written in PHP. It is also a vibrant, growing, and fun community of programmers, activists and communicators. The core Drupal software is a framework to power community driven web site software, and includes features such as internationalization, tagging, and an extensive roles and permissions system. The highly extensible architecture supports well over a thousand sub-projects in the form of contributed modules and themes, so there's something here for everyone.


  • Affiliate module (with integration for Drupal Commerce) A new-generation affiliate module for Drupal 7, with integration for Drupal Commerce. Using Rules and Views
  • Automated Security Reviews The goal of my project is to develop automated tools to assist with security reviews of Drupal module code. The tools will be built atop the grammar parser library and its code manipulation API (CMAPI). The project may also involve extending and enhancing the CMAPI to support the security review tools. The code manipulation API provides tools for traversing, searching and modifying a code snippet. This foundation should prove useful to the development of a security review engine.
  • Bespin for Drupal - Integrated, Web-based, Collaborative Code Editor. Bespin for Drupal (B4D) introduces Mozilla's web-based, collaborative code editor, Bespin, with Drupal 7. This proposal delivers two Drupal Modules: 1) B4D Server implements Bespin Server's API using Drupal Services Module and perhaps WYSIWYG API. 2) B4D Client provides Drupal configuration and integration of the Bespin Client. Depending on progress the proposal may also provide a Bespin PHP syntax highlighting library.
  • Creating a generic Search API This project is about creating a "Search API" module that would complement (and, in some parts, replace) the core Search module and support search module developers by generically implementing tasks and interfaces common to (almost) all search backends. Further services, like a Views integration, could then be built on top of that API, instead of individually for each search backend.
  • Data Visualization for RDF data The inclusion of RDF in Drupal 7 makes Drupal the best mainstream tool for publishing Semantic Web content. However, for people to understand SemWeb, we need to help them use the data produced by Drupal 7 sites. Tools like MS Pivot provide sleek visualizations of data. In this project, I aim to make this kind of data viz open source and easy. With sleek views of linked data, Drupal will not only be the best way to produce SemWeb content, but also the best way to make something of that content.
  • Date module Drupal 7 basic API rearchitecting Rearchitecting the basic Date API functionality, using the forthcoming Drupal7 version as a base, to allow for easier, cleaner, more extensible coding practices and a more robust and understandable workflow. The main areas I see for improvement from my work with Date module include object oriented, simplified and unified workflow and easy support for flexible granularity and other extensions. I would study standard implementations of date handling in other languages before proceeding.
  • Development of some functionalities of DXMPP Module This project will contribute to the development of DXMPP ( module and add additional functionalities to it. The very first goal will be to add Multi User Chat capability (MUC). The next step will be to provide alternate theme(s). Provision for alternate registration and authentication schemes. API cleanup, extension and documentation will go on side by side. Also support for other modules such as token and views will be provided.
  • Drupal Commerce Usability: Bulk Product Creation / Import Tools Create a Drupal 7.x module utilizing the Drupal Commerce API to extend Drupal Commerce by facilitating, refining and streamlining the Bulk Product Creation process. Also, create new API calls that can be extended by modules wishing to Import products from other systems, SQL dumps, CSV files, etc. As the project goes along, there will also be patches submitted to be applied to various Drupal Commerce modules.
  • Drupal For All Overview: I propose to increase the accessibility of important Drupal interfaces for people with various impairments. Specifically, I want to modify and sub-theme Drupal 7's core themes, the WYSIWYG module's TinyMCE configuration options, and View's interface and output to be more accessible.
  • Facebook-style Micropublisher (FBSMP) Today, every website wants to be social and installs several modules on their websites to facilitate social networking for their users. I propose the module (Facebook-style Micropublisher) which will let users publish content (such as images, links, videos, pdfs, etc) along with a small text status on their (other user's) wall, like on Facebook. FBSMP will be a pluggable system whose functionality can be extended by writing small plugins.
  • HTML5 Support for Drupal 7 I will introduce several features which will make Drupal more user friendly and more interactive. My proposals will be able to fill up the raging gap between the capabilities of HTML5 and Drupal.The basic change will be made in the working of the editor, preferably the WYSIWYG editor support of Drupal, as well as the Media module of Drupal.
  • Integrating Views output into Feeds for further processing into Drupal This project intends to enable Drupal importing data from various existing WebAPIs (e.g. Twitter, Facebook, XML, RDF, etc) and further save it into Drupal's objects (e.g. nodes, users, database, etc) This is achieved by utilizing and integrating both Views and Feeds module in Drupal. The process of importing external data from WebAPIs will be: external WebAPIs -> Views -> Feeds -> Drupal (nodes, users, comments, database, etc)
  • Optimize the performance of evaluation part of rule sets Rule is an event driven module. According to event if specified conditions of the are met the corresponding actions are taken. Rule sets are sets of rules. Rules of rule sets can be interrelated in their condition part (containing same conditions or their negations). So the same condition generally be evaluated multiple times. This approach is not optimal. We can optimize this by changing the condition evaluation part in the form of a decision tree. Every condition will be evaluated at max one.
  • Port QueryPath to D7 QueryPath, being a XML/HTML parser that lies between DOM and SAX, is an essential part of the Drupal and PHP communities. By updating QueryPath, the QueryPath Drupal module, the example Drupal modules, and the Database API, while also converting QueryPath from a top-down architecture to a bottom-up, I will help QueryPath keep and increase its popularity and help Drupal become more of a go-to CMS for websites that want to focus on web services.
  • Project Tools for Grassroots Activism This set of tools will allow grassroots activists to better organize projects and campaigns. Existing tools for Drupal are lacking key features, often not very user-friendly, and usual not packaged for easy setup. I will address these problems by creating by: * Adding functionality to existing task tracking modules * Creating the capacity for subgroups * Allowing for discussion listservs to integrate seamlessly with groups * Creating a module to plan, track, and document meetings
  • Remote entities The aim of the project is to create a system, based on services, which will make it possible to transparently use entities from a different site as local entities. I will base my system on Drupal 7, because the new APIs give me the required level of flexibility for the clean implementation. I will use the Entity API module to do easy CRUD on the entities.
  • Rules data transformation plugin This project is about creating a rules plugin, that transforms data.
  • Title Auto Taxonomy Generation from Node-Content This proposal will focus Drupal development in the area of Semantic web. The first step in this regard is to empower the taxonomy system with intelligence, make sure that content is tagged accurately, guide and assist authors and moderators in tagging (semi-automatic), auto-tag content, impose guidelines an automated tagging, and learn from existing taxonomy trees within the site and other Drupal sites.