Google is running their great Summer of Code (http://code.google.com/summerofcode.html) program again this year, and Horde is again a mentoring organization. This page is a guide to participating with Horde, and the place to collect ideas for projects. It is mainly for those with project ideas and those interested in participating as a student. If you'd like to help out by mentoring, send a note to Horde's mentor coordinator, Chuck Hagenbuch (chuck at horde dot org).
The 2006 Summer of Code will be history in a few hours. The projects accepted by Horde were:
The ideas listed on this page are just that - ideas. They are deliberately somewhat vague, because you are meant to fill in the details. Last year there were too many proposals that simply cut-n-pasted the text from our ideas page. Don't do that! If you do, you will be tossed out very early in the application sorting process. Drupal is one of the other mentoring organizations with a nice HOWTO written up; rather than paraphrase them, go check it out: http://drupal.org/node/59037. The same kinds of things apply to Horde.
The Student Faq (http://code.google.com/soc/studentfaq.html) is your first stop for requirements. In addition to what Google says, Horde would like the following from applicants (credit goes to the Drupal folks again for their nice writeup: http://drupal.org/node/59963).
Definitely not! These are here to get you started, and because some folks think it'd be great to see them done. If you have your own idea, run with it. We'll judge applications on their strengths, not on who wants the project done or who thought of it.
Send a note to the Horde development mailing list (http://horde.org/mail/ for information and subscription instructions). We'll be happy to give you feedback and to help you develop your idea. Again, don't just cut-n-paste if you're not sure what else to say - spend the time to have a dialog with us to flesh it out. We promise you'll get as much out of any preparatory work as you put into it.
Finally, here are the ideas.
Develop a Horde application for managing SSL certificates. Possible functionality includes managing server certificates (for https, imaps, etc.) for administrators, and also allowing users to create end-user certificates for authentication and mail signing. For a bonus, integrate the user certificates with IMP to create a complete PKI management app.
Develop a bootable CD (perhaps based on http://www.knoppix.org/) that will load an entire Horde installation, complete with mail server, database, etc. Options include an install option as well as just booting, and integration with a Horde Installer.
Make the main Horde applications installable and updatable by a PEAR or similar installation system. They should be delivered via a Horde channel server (if using PEAR), and the whole package should include post-install scripts to do all necessary configuration steps, including for the database. As a potential alternative or complement to a PEAR package, there's also PHP_Archive .phar files. See http://greg.chiaraquartet.net/archives/128-pharring-a-web-application-phpMyAdmin.html for some interesting possibilities.
Follow up on last year's Horde_Form project (currently available in the incubator - http://cvs.horde.org/incubator/Horde_Form/). Update the code to use Prototype and Scriptaculous for the scripting basis, sync with the current Horde_Form code, and go from there. The ability to have any form switch between active and inactive rendered mode - optionally on a field-by-field basis - using in-place-edit functionality would be very slick.
Provide a solid SyncML component that can be used by various applications for all types of information synchronisation. See SyncML/ProjectIdeas.
Add support for various client-side encryption operations. For instance, doing S/MIME operations on the client instead of the server, using client-side SSL cert instead of uploading one to the Horde server. Other uses are undoubtedly possible (signing timesheets, signing invoices, etc.), as well as integration with the Horde CA project above.
Develop a Horde LDAP application capable of both browsing and managing an LDAP directory. Should also support importing and exporting LDIF files.
Develop backends for Shares, Permissions, etc. using RDO (http://cvs.horde.org/framework/RDO/) or another "next-generation" database solution that performs and scales better than the DataTree package. The core framework packages should definitely be handled and should be done by adding new drivers (Groups already has an alternate LDAP backend, for example). Further handling applications like Trean that store their data in the DataTree would be an additional bonus.
Extend VFS to optionally support metadata attributes (such as category, description, license, version etc.) Attributes should be stored through a driver interface to allow later driver development like access to Documentum etc. The project should include a small Horde application to basically browse, search, and edit attributes - basically a very small document management system. This application would also serve as an example for implementing metadata in other applications.
Extend RDO and Horde_Form to autogenerate basic CRUD forms (create, read, update, delete) based on the metadata already available in RDO.
Instead of the current thread sort, show each thread as a single entry in the mailbox, and link threads to the thread view page instead of the individual message view. This would also imply making the thread view page more complete, and not having "View Thread" as a seperate menu item. See http://bugs.horde.org/ticket/?id=240 and http://bugs.horde.org/ticket/?id=3278.
Take a look at the Horde_Block system. Take a look at the *_View objects in Kronolith and a few other apps. Come up with something that unifies them into a lightweight way to encapsulate content in an easy-to-reuse, easy-to-render elsewhere package.