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 http://code.google.com/soc/student.html 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.

Benefits

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. http://code.google.com/soc/studentfaq.html#42

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.

Deadline

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: http://plone.org/products/plone/releases/soc-06

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 http://plone.org/products/plone/releases/soc-06 already, others are still under discussion.

Tagging

Tagging engine for Plone (Jonah - can you finish writing this PLIP?)
http://plone.org/products/plone/roadmap/140
Tags: http://svn.plone.org/view/collective/Tags

Student: ?
Mentor: Jonah Bossewitch

Ratings

Improve the following product(s):
http://plone.org/products/contentratings   (see the TODO section)
http://plone.org/products/atratings

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

Syndication

improve inbound syndication:
http://plone.org/products/plone/roadmap/137

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

improve outbound syndication (support for RSS 2.0, Atom, etc.)
http://plone.org/products/plone/roadmap/128

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

Creative Commons licensing

Adding Creative Commons licenses to content in Plone
http://plone.org/products/plone/roadmap/136

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.

Blogging

Improved Blogging tools for Plone
http://plone.org/events/sprints/snow-sprint3/blogging

Jon Stahl's blogging tools features matrix
http://mail.onenw.org/wiki/index.php/Blogging_and_Plone

Student: Tim Hicks
Mentor: Jon Stahl?

Annotations

http://plone.org/products/plone/roadmap/138

Student: ? 
Mentor: Jonah Bossewitch

Media player

Flash multimedia player for Plone (need to write PLIP)
http://article.gmane.org/gmane.comp.web.zope.plone.multimedia/75

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

Large file handling

http://plone.org/products/plone/roadmap/154

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

Calendaring

Recurring events (need to write PLIP)
http://plone.org/products/recurringevent
http://plone.org/products/recurring-events

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)
http://plone.org/events/sprints/calsprint/CalViews
http://plone.org/events/sprints/calsprint/Mockups

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

Portlets

http://plone.org/products/plone/roadmap/118
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)
http://plone.org/products/plone/roadmap/38
http://plone.org/products/plone/roadmap/119

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

Transforms

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)

AJAX

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.
https://pluto.objectrealms.net/svn/public/haystack/trunk/Haystack/docs/README.txt
http://projects.objectrealms.net/haystack

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