GSoC/GCI Archive
Google Summer of Code 2011


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.


  • Business Analytics and Reporting This project is about creating a generic logging and reporting solution built upon available Drupal 7 technologies. The main parts are a storage system for raw site-dependent data, a charting solution to provide rich visualizations and finally a reporting system which provides reports about the current and past state of the site. Based upon the provided data a site owner should be able to make data-driven decisions and to hand over well presented reports to other people.
  • Conditional text “The basic idea of conditional text is to evaluate an expression, and display text if it's true. “ In short, this is what my proposed module will do.
  • Derivates API for Media ecosystem (D7) The goal of this project is to implement Derivates API for Media Library (Media, Styles, ...) ecosystem in Drupal 7. This API will provide a flexible, extensible and abstract API to implement derivation engines for different types of files.
  • Development Activity logging, Activity Streams and Development Statistics We currently still lack the ability to really see what’s really going on with a project. An activity stream is an overview of all actions in a system that are interesting to a user from his or her perspective. This project introduces Activity Stream to a set of social Development-oriented Drupal modules.
  • Extending the current "Materialized Views" API This project is about extending the functionalities of the existing “Materialized Views” API. This module allows dynamic consolidation and indexing of data from all over Drupal into these new "materialized" views. This project mainly aims to extend the capabilities of this API to Drupal 7 and fully integrate it with Fields and Entity APIs. Also, then, it aims to extend it with the Views API.
  • Hierarchical permissions for Drupal 8 I would like to implement hierarchical permissions for Drupal 8 core. I want to provide modules with well structured, and accurately regulable rights that are easy to define and rework the rights management interface as well.
  • Improving Rules 2 Rules 2 is a module for drupal 7, that allows users implement workflows using actions that depend on events and conditions. The goal of this project is to extend the module by 3 points: - A Queuing should be introduced, - a costum links module should be implemented - and some usability improvements should be made. Especially sites with complex rule sets, like shopping sites or community portals, would benefit from such a additions.
  • Improving the Search API This project is about further improving the "Search API" module I created in last year's GSoC and consists of the following smaller tasks: Add autocompletion feature; Provide ways to index other data than entities; Add a "More like this" feature; Add hierarchical facets for taxonomy terms; Add additional little multi-language features; Extend test coverage; Extend documentation. The last two are inherently open-ended to use up any time I have left over after the other tasks.
  • Integrate node.js as well as DrupalChat module functionality to Chatroom module. This project will focus on integrating node.js and DrupalChat modules functionality to Chatroom module. This project is planned for Drupal 7.
  • JavaScript testing framework I would like to write a full-fledged JavaScript testing framework for Drupal. As Drupal has grown, it has incorporated more and more JavaScript into its user interface, so being able to test JavaScript is critical in ensuring that the user interface is functional. A JavaScript testing framework could be used for unit tests, such as for API functions like Drupal.checkPlain(), as well as for logical functional tests of complex user interface pieces, such as tabledrag.
  • Module and Theme Browser in Drupal Core Implementing a Module and Theme Browser in Drupal 8 Core which would allow users to search for and install Drupal extensions from the admin area of their Drupal sites, similar to how WordPress currently works.
  • Porting DrupalGapps to D7 & Integration of OAuth & Google Documents List API The project aims at extending the DrupalGapps (Google Apps Framework for Drupal) module by: 1. Porting DrupalGapps module to Drupal 7. 2. Improving and adding more features to existing DrupalGapps API. 2.1. OAuth integration. 2.2. Registration sub-module development. 3. Developing wrapper and application for Google Documents List API using DrupalGapps API.
  • Porting Neologism to Drupal 7 Neologism is a powerful RDF Vocabulary publishing platform and is already being used in the RDF community. However, using it in existing Drupal sites is difficult since there is no dedicated D7 Module. Moreover, there is no alternate vocabulary publishing solution available at the moment. Carrying forward the work already put into Neologism, I intend to port it to D7 and making it available to the huge Drupal community and any existing Drupal sites that want to use customized RDF vocabularies.
  • Recommender Module Performance Enhancement & Drupal for Data-intensive Computing This project will integrate the Recommender modules with Apache Mahout for better performance and scalability to compute content recommendations for large Drupal sites. The second part of the project helps Drupal integrates with any data-intensive computing programs written in any programing languages running on a remote computer.
  • Secure Code Review The goals of my project are: 1) to develop additional reviews in the Secure Code Review module, 2) to improve the reporting of results from the module, and 3) to provide Drush commands to invoke the reviews.