2012 Google Summer of Code Students and Projects announced

Sigurd Magnusson,
24 April 2012

Sigurd Magnusson is one of SilverStripe’s three co-founders. Sig is based in Wellington, New Zealand and works full-time at the SilverStripe headquarters. His efforts are focused on sales, marketing and fostering the open source community.

Google is funding seven talented university students to work on projects to improve SilverStripe CMS. This gives students a highly educative programming experience, and helps further our software immensely. We're very excited, although I'm sure the students are even more so: they only learnt hours ago they've been accepted!

This is all part of the annual Google Summer of Code, whereby over 1200 university students all over the planet are given several months experience working on and contributing to 180 open source projects. It's a highly competitive programme; Google assigned us seven projects to fill and we had four times that number in applications.

The development of all projects will be performed in the open, with the resulting code released under an open source license. Over the coming weeks the project ideas will be refined, with code being written from late May to mid August. Keep an eye out on the github wiki and silverstripe-dev to keep an eye on what's happening and to contribute your own input. We'll post updates periodically to this blog. The seven projects (in alphabetical order of title) are:

1. Content Personalization and Targeting Module

Create a new module to personalise website content for different users. Users might be differentiated by such things as geographic location, in-bound keywords, in-site browsing activity, OS, browser, device, etc. The CMS will support multiple forms of content being written and match content with given users to create a personalised experience.

Student: Yuki Awano (Japan)

Mentored by: Philipp Krenn (Austria)

2. Form and Model Validation

Forms are one of the most important parts of every framework/CMS. The validation layer of SilverStripe isn't very flexible and doesn't handle complex scenarios well. The goal of the project is to allow easy and powerful validation tools on both server and browser side.

3. Improve Behaviour Testing Framework and Test Suite

SilverStripe has a decent coverage of unit tests, but these typically focus on the technical aspects of the software and don't examine the CMS/framework from the user perspective. The goal of the project is to introduce acceptance tests that simulate user behaviour in the system and check common actions.

Student: Michal Ochman (Poland)

Mentored by: Ingo Schommer (SilverStripe Ltd, Germany)

4. Improve Developer Ergonomics

SilverStripe has a set of features to support developers. However, these features depend on manually adding GET parameters to the URL. The goal of this proposal is to make the tools available at a central, easy to find location in form of a developer toolbar, and to improve a logging mechanism useful for debugging.

Student: Jakob Kristoferitsch (Austria)

Mentored by: Mark Stephens (SilverStripe Ltd, New Zealand)

5. Improve Payment module

Improve API, structure and testing for the existing payment module, and support more payment gateways. The scope is to be further collaborated on by various community members involved in SilverStripe's ecommerce capabilities.

Student: Ryan Dao (Singapore)

Mentored by: Frank Mullenger (New Zealand)

6. Improve silverstripe.org Module and Widgets pages

The functionality of modules and widgets download pages at silverstripe.org is minimal and can be significantly improved. Searching, browsing, and how modules are linked to code repositories will be enhanced.

Student: Vikas Srivastava (India)

Mentored by: Aaron Carlino aka UncleCheese (USA)

7. Module System Refactoring

Currently there's no way to define dependencies of modules, organise them into subfolders or easily submit them to a central repository. Using the newly popular composer/packagist pair, allow module authors to define dependency metadata for a module inside a JSON file and enable versioning to be inferred from source control. This will simplify the installation and management of modules.