Google Summer of Code 2006

We are accepting student applications for Summer of Code. Time is of the essence if we want to get funding from Google for these projects. The deadline is May 8th, 17:00 PST.

So if you are a student and you fancy writing some code this summer you should go check out Google's Student FAQ and Plone's PLIP section (keep in mind that you can come up with your own idea, if it's great then we'll dance with joy and accept it!) and if you are eligible and keen, you should head over to and apply!

Are you already a Plone developer but want to participate as a student?
Don't be discouraged, you can apply and be accepted as long as you are not mentoring for any organisation and as long as you work on a project different to what you normally do.


Besides learning a lot about Plone and best practice software development techniques, there are these other benefits of participating in the Summer of Code (SoC):

Mailing list

Make sure to sign up for Plone's Summer of Code mailing list.

Submit a proposal

Once you are interested in taking on a project, you must rewrite the Plone improvement proposal (PLIP) as a Summer of Code (SoC) proposal for submission to Google. This is the process outlined by Google.

Sign up as a student

If you are a student and would like to get paid this summer to work on Plone, please sign up on the Google site. Be sure to select the "Plone Foundation" as the mentoring organization. You should select from one of the following project ideas, or write to the mailing list with your own idea.

Be a mentor

We need mentors who are willing to coach the student and help get them up to speed. Sign up to be a mentor here. Be sure to select "Plone Foundation" as the mentoring organization.


You must submit your proposal by May 8 at 17:00 PST. 

Potential projects

Nate Aune, Jonah Bossewitch and Jodok Batlogg already created a list of potential projects. There were also proposal ideas submitted by Martin Aspeli (optilude on IRC). 

You can see all the PLIPs that have been assigned to the SoC Plone release here:

This is the canonical list of proposals, and new proposals may be added here.

Proposal ideas

Some of these have been added to the list of proposals at already, others are still under discussion.


Tagging engine for Plone (Jonah - can you finish writing this PLIP?)

Student: ?
Mentor: Jonah Bossewitch


Improve the following product(s):   (see the TODO section)

Student: ?
Mentor(s): Alec Mitchell? (author of contentratings), Geoff Davis? (author of ATRatings)


improve inbound syndication:

Student: Will Parks
Mentor: Jonah Bossewitch (author of PLIP #137)

improve outbound syndication (support for RSS 2.0, Atom, etc.)

Student: Tim Hicks
Mentor: Tom Lazar?  (author of ATCTSyndication and PLIP #128)

Creative Commons licensing

Adding Creative Commons licenses to content in Plone

Student: ?  (if you sign up for this, select "Creative Commons" as the mentoring organization)
Mentor: Nathan Yergler (Creative Commons)

Creative Commons has offered to be the mentoring organization for this, instead of the Plone Foundation.


Improved Blogging tools for Plone

Jon Stahl's blogging tools features matrix

Student: Tim Hicks
Mentor: Jon Stahl?


Student: ? 
Mentor: Jonah Bossewitch

Media player

Flash multimedia player for Plone (need to write PLIP)

Student: Guenter Dressel (gue)
Mentor:Jodok Batlogg (batlogg)

Large file handling

Student: ?
Mentor(s): Martin Aspeli (optilude), Martijn Pieters?, Dorneles Tremea (author of ExternalStorage), Cyrille Lebeaupin (author of FileSystemStorage)


Recurring events (need to write PLIP)

Student: ?
Mentor: Steven Haddox? (author of Recurring Events), Pawel Marzec? (author of Recurring Event)

Dynamic month/week/day views of events (need to write PLIP)

Student: ?
Mentor: Sidnei da Silva? (author of Calendaring), Nate Aune (co-author of CalViews)

possible to build JSR 168 compliant portlets?

Student: ?
Mentor(s): Martin Aspeli (optilude), Geir Bœkholt? (elvix), Dorneles Tremea? (deo), Helge Tesdal? (tesdal), Christof Haemmerle? (reco)

Help system

Contextual help (work already started at Archipelago sprint)

Student: Fabian Kochem
Mentor(s): Dave Convent (davconvent)


Alec Mitchell suggested that a good SoC task would be to break PortalTransforms into more re-usable components (basically a utility) so that it could be usable in a pure Zope 3 context. This would make it more natural to work with and integrate transforms in other components.

Student: ?
Mentor: Alec Mitchell?

UID, Reference engine, widgets

Some work was already begun on componentising Archetypes so that more parts of AT could be re-usable on their own, and AT could be easier to maintain and/or migrate. Some of this (the UID catalog, the reference engine) was begun at the snow sprint. There is some uncertainty around the best way of doing some of this, but a few of the components are fairly obvious wins. A generically useful reference engine not tied to Archetypes would be a really big win, IMHO.

Student: ?
Mentor: ?

Content rules engine

One thing I really want to work on (and could use some help on) is a generic content rules engine, like the one found in Alfresco. Consider the case where a piece of content is dropped in a folder via WebDAV, FTP or TTW. Based on its type and content, it could be mutated in some way or moved or copied somewehere else. For example, all News Items dropped in the drop-box with a date in January, gets moved to /news/january after first being saved. Zope 3 events, possibly coupled with Objectrealms' Eventually system (I haven't had time to look at it in detail yet) will be able to power this, but we need a pluggable way of registering actions and a UI for attaching actions to locations. Another part of this is having more general add-rules, so that any content that is added from the dashboard, say, can be placed in a pre-defined folder based on similar criteria.

Student: ?
Mentor: Martin Aspeli (optilude)


The state of AJAX in Plone is ... transitory. A lot of good work and good exploration was undertaken durin the sprint, but there will come a time when we need to apply effects and functionality using the frameworks we are evolving. Expect limi to guard this jealously, but I imagine there is scope here to attack specific problems such as the smart folder UI, the portlets-assignment UI, or the uber-selection-widget. Another really interesting one is the thinking that Ben, limi and others did around folder_contents - making this into a two-pane navigation view where you can drag and drop objects around the portal very quickly.

Student: ?
Mentor(s): Ben Saller?, Alexander Limi?, Godefroid Chapelle?

AI Classification

Haystack: Auto-summarize and auto-relate content in a Plone site.

Student: ?
Mentor(s): Ben Saller? (bcsaller), Kapil Thangavelu? (hazmat)