WordPress.org

Codex

GSoC2007

Contents

Results

WordPress Summer of Code 2007 Google Group

Repository for WordPress Summer of Code 2007 projects

Application

Mentors

Andy Skelton, skeltoac
Generally available for mentoring on any idea. Experience with all aspects of the WordPress code base. Expertise in WordPress editor, TinyMCE, import/export, JavaScript.
Matt Mullenweg, photomatt 
Generally available for mentoring on any idea.
Michael Adams, mdawaffe 
Generally available for mentoring on any idea. Expertise in WordPress image handling, bbPress, JavaScript
Peter Westwood, westi 
Generally available for mentoring on any idea. Experience with all aspects of the WordPress code base.
Robert Deaton, masquerade 
Generally available for mentoring on any idea. Likely, the most expert PHP developer involved in WordPress.

Specific Ideas Mentors

Brian Layman 
Specific ideas, see below.
Lloyd Budd, foolswisdom 
Specific ideas, see below. Testing and Quality Assurance expertise.
Nikolay Bachiyski
Any ideas in the i18n/l10n fields.

Ideas

If you have your own idea for a project, include it in your application.

http://wordpress.org/extend/ideas/?show=popular shows the ideas that many members of the WordPress community are passionate about. If you share their passion, why not make that idea your own?

Performance

Mentor: Matt Mullenweg

Ideas:

  • A testing suite that measures performance of various components and can be regularly run against new code.
  • Review of the object caching system to natively support pre-fetching and zero-query WordPress pages (without wp-cache)
  • If proper HTTP headers were sent from WordPress pages then external squid-like proxy caches could be used to vastly improve performance.
  • Currently WP loads all its code on every page, could a selective code loading scheme improve performance in a meaningful way?

Create Unit Test Framework for Editor Formatting

Mentor: Lloyd Budd & ?developer?

The blog post editor does some automatic formatting of html tags. This is an area that repeatedly has many minor bugs. A systematic test-based (extreme programming) approach may be the a useful approach, and this would start by developing unit testing for the existing functionality.

This project could be extended in a few other different directions:

  • Extend the unit testing framework to one or more other areas of WordPress development
  • Automate running of the unit testing framework
  • Work on improving the editor formatting rules

Hierarchical Page (list) Management using jQuery

Mentor: Michael Adams

bbPress has "Edit Forum Order", you can drag the list items around and change their order.

To use this in the WP Manage Pages screen, several things would have to be thought through:

  • Screen should be paged, like 20 pages per screen.
  • How do you pages/screen a hierarchy in the first place?
  • You could be leaving off some Page's children when you stop loading after the 20th page-screen.
  • How do you drag a page down the order onto one of the next page-screen?


Three features that would make WordPress a better CMS

Mentor: Brian Layman

  1. Compare 3 of the top CMS applications
  2. Evaluate 3 important CMS features that are missing in WP
  3. Prototype one or more of those features in WordPress

Other ideas:

  • Are there a set of plugins that would address 80%+ of what people need? Comment rating, story submission, post voting, email newsletters... what else? Can we work with existing plugin authors to create a CMS add-on suite?
  • Versioning for posts and pages in core with an elegant front-end and back-end interface. Could be the basis of a plugin-based wiki WordPress? Could blicki be used as the basis?

Trac Social Bug Tracking Development

Mentor: Lloyd Budd

WordPress has a large number of "casual" contributors, people that contribute only a few bugs or fixes. These contributions are essential, and are the lungs if not the heart of WordPress. A fun way way for anyone to easily identify their contribution would be interesting.

Investigate what GNOME and Ubuntu (Launchpad.net) bug trackers include for "karma"-statistics testing and development ticket tracking. See what is available for Trac, which may be nothing, and work on a implementing a system similar to GNOME and Ubuntu's.

Although "Trac uses a minimalistic approach" a solution should be possible because of Trac's extensible architecture.


Internationalization revisited

Mentor: Nikolay Bachiyski

There are a number of challenges both the WordPress i18n infrastructure and the WordPress l10n community are facing. A Summer of Code student could help us in the following areas (not mandatory in all):

  • Making all strings available for translation via gettext
    • now some files have to be translated directly (more info)
    • TinyMCE
    • All the other JavaScript strings have to be put in a php file in order to be gettexeted
  • Better infrastructure for translators
    • Automatic generation of translated WordPress installation packages
    • Setting up i18n trac, like its big brother
    • Better means of distribution of translated WordPress, plugins and themes
  • Better i18n documentation for both developers and translators and thus better communication between them
  • Modification of translated messages on-the-fly (see the inline translation interface proposal in the Other section)
  • Internationalization of plugins and themes metadata
  • Setting up i18n test environment (for example automatically translating everything to Pig Latin)

These ideas are just a rough todo list for the i18n team. They are not explicit project proposal(s).

Pluggability

Mentor: Andy Skelton

Ideas:

  • WordPress has a small set of "pluggable" functions which can be superceded by plugins. Implement a scheme whereby most or all of WordPress would become pluggable.

Other

  • An inline translation interface that submits to a central version controlled repository which has moderators and can import and export files in the gettext format.
  • Admin-based documentation so that contextual help can be supplied for all aspects of the WP backend.
  • A plugin update notification framework that can give notification when a plugin was updated, and possibly allow a one-click upgrade. Should verify security with a third-party. Could possibly be extend for core WP upgrades or notification.
  • An on-the-fly templating system for themes -- using PHP in our themes is fantastic, but sometimes the syntax can be challenging for newbies. Could we make our template editing UI better? Could include on-the-fly two-way translation of PHP tags into something friendlier, shortcuts and quickbuttons for common code, PHP linting, rollback of template files in case something gets screwed up, and documentation and tips.
  • Better image management and handling, possibly including: cloning the Flickr API, allowing cropping and simple editing of files, thumbnail cropping, better alignment control, handling and tagging of attachments
  • Built-in podcasting support, including tagging and iTunes support
  • XHTML validation framework, which helps ensure that all output of WP (including templates) produces valid HTML
  • Extending the search system to support more advanced search syntax, relevance, and external APIs like Google or Yahoo's.
  • WYSIWYG Work, very heavy JS -- Extend TinyMCE to fully support all the content types and formatting that we need, ensure valid output and resiliency against bad pasting (Word, etc)
  • Batch editing of post and attachment attributes such as categories, tags, author.
  • Improved Comments Panel offering instant ability to respond to comments via AJAX, comment sorting and threading by posts options, and more, such as listed in this post

See Also

GSoC2007, GSoC2008, GSoC2009, GSoC2010, GSoC2011, GSoC2012