Google Summer Of Code 2006
About Serendipity
Serendipity is an advanced PHP blogging engine. It is versatile and flexible through it's OOP-plugin API and supports abstract templating via the Smarty system. It is multi-database driven and standards compliant, as well as being able to be installed in shared or embedded environments.
About Summer Of Code
Google offers participation in a Summer Of Code-Camp. Projects can apply their software to this Camp, and Students can participate in this students during a period of three months. Serendipity will be one of these applications.
UPDATE Project applications by Google seem to have come in too many at once, thus currently applying projects are rejected. We got this mail from Google:
"Thank you for your email. Unfortunately, we cannot offer Serendipity
Weblog admission to Summer of Code at this time. Best of luck to you
and your colleagues with your project and all your future endeavors."
This wiki page will still be left open to keep ideas for the future.
About this Wiki Page
This wiki page is here to list ideas for Students to create Code for. The Mentor to the Students will be Garvin Hicking, Lead Developer of Serendipity. If you have any suggestions to add to the list of ideas, this page is world-editable - so please go ahead.
Ideas
Please only mention tasks here, whose complexity fits into a 3-months period
- Multi-User Blogging. Allow to create sub-blogs from within the Serendipity Admin panel to create distinct sub-blogs. Currently, Serendipity allows full abstraction via Categories, but that blog is then still maintained via one central admin interface. Ideally, a multi-blog can be completely independant, by having its own plugin manager, own Entries manager and own categories.
- Performance Tuning. Serendipity heavily relies on a plugin API concept and Smarty templating. Because of its high flexibility, performance is not always top notch. Find means and ways to optimize this.
- Write Unit-tests / testcases for all abstracted parts of the Serendipity Framework. Currently Serendipity provides no Unit-Tests. Find a good and easy way to introduce those.
- Improve the SPARTACUS central plugin repository to be forward-compatible for digitally signed plugins and safe mirror organization with plugin checksums. Also improve/create a website like PEAR.php.net where people can submit plugins to a central repository.
- PEAR Channel integration. Make the Serendipity core and their plugins available to PEAR channels.
- Create a PHP-based Theme editor for editing the Smarty template files over the web in a secure and pretty way. Improve the page preview screen so that the javascript no longer needs the 'mainpane' id, and allows complete page preview instead of just the entry preview (Carl Galloway)
- Fetch Templates from Database
- Create a workflow-based editor system, so that specific people can define specific steps in an entry creation/review workflow and setup actions to perform (send a mail, pre-publish files, ...)
