Howdy Students! Google Summer of Code is a program in which Google sponsors exceptional college students to develop open source code under the guidance of mentoring open source projects. WordPress is applying to be participating as a mentoring organization again this year. This page contains information about potential projects and mentors. Students who complete their summer projects successfully and on time are paid a stipend by Google that adds up to $5,500 for the summer. Project progress is evaluated at midterm and at the end for payment consideration. To apply for a GSoC slot working with WordPress, you should be proficient in PHP and/or jQuery, and have familiarized yourself with the WordPress codebase.
If you have your own idea for a project, include it in your application and describe it thoroughly. You are not limited to ideas from this list.
Know you want to propose a GSoC project around WordPress, but aren't sure what you want to do? Below are a few ideas we think would work well as GSoC projects. Also see the popular ideas submitted by members of the WordPress community. Also, check out the ideas from 2013 to get an idea of some past projects.
Note that if you are forking or re-using code, you must clearly identify the code that is being borrowed and that which is original. Your project should include a significant amount of original work.
Put your project description in a paragraph like this. If there are relevant trac tickets, go ahead and link to them, like #20000. Be as detailed as possible in describing your idea. Don't just say, "unit tests,' or "anything related to the admin." That's not very helpful. For broad things like that, go ahead and like some possible examples.
List examples or parts to the project in this format:
Possible Mentors: Name, Name (Add your name if this was your suggestion. You can also add your name as a possible mentor to other ideas so we know who'll be interested in/capable of mentoring a certain topic if that idea gets a good response from students.
Added By: Name of the person who is adding this idea to the list, so Jen knows who to ping if more detail is needed. (end of section to be copied)
If you look at trac (our ticketing system for WordPress core), there are hundreds of tickets for bugs, enhancements, feature requests and blessed tasks that never quite make it in. Not every GSoC project has to be a big single-feature goal. Helping us improve existing core WordPress code is also very valuable. For a Full-Throttle Trac Annihilation project, you'd want to identify the areas of code you're most comfortable working with, and identify a scope/minimum set of tickets that you will fix and close by the end of the project term.
This could be based on a component, or could be a selection of specific tickets you think are important to address and would provide you with a summer challenge.
Possible Mentors: Any/all lead and commit-level contributors. One benefit of this project type is that you will have the entire development community to give you feedback as you work.
We have been using the P2 theme for our contributor group blogs, and many WordCamp organizers set up P2s separate from their main event blogs to use for their organizing teams because with P2 all the functionality is built into the theme rather than being portable with a plugin. While Automattic has been working on a theme+plugin P2 replacement called O2, it has more features than are needed for our community groups. This project would involve several parts:
Possible Mentors: TBD. Will work with our /community team and /meta team in addition to a specific mentor.
We use a lot of forms on our community sites: applications, contact forms, post submissions, sign-up forms, surveys, etc. We currently use a combination of Polldaddy surveys and Jetpack forms, but neither is exactly what we need, and we don't need something as flexible as Gravity Forms or other commercial plugins. This project would focus on creating a forms/surveys plugin based on the needs of the community outreach team to support WordCamps and Meetups, and would be released as a free plugin in the wordpress.org directory upon completion, with the student listed as a lead developer.
Features would include:
Possible Mentors: TBD.
For the out-of-the-box theme experience, BuddyPress originally had bp-member, then bp-default, and now (because of theme compatibility) we rely on bp-legacy, which is largely lifted from bp-default. Some ideas and work has been started around what a next generation default BuddyPress experience could look like, but it's slow going. Some relevant links/tickets:
This is primarily front-end work: HTML, CSS, JS, with some knowledge of PHP & WordPress desirable, but not completely necessary.
Possible Mentors: Tammie Lister, John James Jacoby
In bbPress, users can have one of several roles. The most useful (aside from the Keymaster) is the Moderator -- a user that has complete control over the entire forum -- with every topic, every reply, and every topic tag in their jurisdiction. We'd like to allow individual forums to have their own moderators, so users can be empowered only in specific sections of the forums as a whole.
Perhaps adding to the complexity (and fun) here, because bbPress forums are a WordPress custom post type, there's potential to build a per-post permissions API more robust than even WordPress currently comes packaged with.
This is primarily back-end work, with some light front-end to make it all work: knowledge of PHP & WordPress is desirable.
Possible Mentors: Stephen Edgar, John James Jacoby
While the sites for individual events at wordcamp.org are usually done with responsive themes, it would be great to have native apps that pull the data from the site into a nicer day-of experience, including some good schedule display/selection, feedback forms, etc. iPhone and Android are the most popular platforms in the community.
Possible Mentors: TBD (Possibly Eric Johnson), Marko Heijnen, Eric Mann
SupportPress is a standalone application based on BackPress (an extraction of the underlying architecture of WordPress that doesn't get much attention anymore) used for email-based communications and team-operated support. It is used by several WordPress contributor groups, including the theme review team, the plugin review team, the WordCamp team, etc. It would be much easier to grow a contributor community around something like this if it was a WordPress plugin rather than a standalone app.
Possible Mentors: Daniel Bachhuber, others.
WordPress Beta Tester is the plugin we use for people who want to be able to update to the most recent version of trunk to beta test upcoming releases. However, this plugin only does that one thing --- updates the sites using it to be running the most current version of core. This project would build in a reporting capability, so that someone running the plugin could send information back with error reports etc.
Possible Mentors: Peter Westwood, others.
Currently there is no way to easily share data across sites on a multisite network, even if it's a closed, trusted, network. Existing options, such as using switch_to_blog(), inline frames, or redirects, don't work well. This could start as a "features-as-plugins" project and maybe eventually make its way into core.
Possible Mentors: TBD (Possibly Jeremy Felt? Nacin?)
Added by: rclilly (updated 02/12/14)
The WordPress for iOS and Android native apps let a user view and moderate comments from a single list. It would be nice if a user could also view view and moderate comments on a post by post basis. This project would create a new feature in the iOS and Android apps to view a list of comments for a specific post, as well as view and moderate the comments in the list.
Possible Mentors: Eric Johnson, Aaron Douglas, Maxime Bais
The WordPress for iOS and Android native apps do not have a way to let you search through the list of posts, pages, or comments synced to the app. Having a simple text search would help users quickly find what they’re looking for without having to spend time hunting through individual items in the posts, pages, and comments lists. This project would add an in-app search feature to the post, pages, and comments lists in the iOS, or Android app.
Possible Mentors: Eric Johnson, Aaron Douglas, Maxime Bais
The Search Initiative is a collection of smaller tasks aimed at making searching within the admin panel a more unified, streamlined, simpler experience. We are not looking to change the search experience on the front-end of sites. Instead, the biggest task at present seems to be unifying all the search forms in the administrative interface to feed into a global search. Probably offering tabs for each searchable content type, with a count of the number of entries in each.
There is a decent chunk of work already completed on this from a brainstorming and roughing-bits-in perspective. It had a lot of support from up top, I just didn't have time to keep pushing it forward, but would be delighted to advise anyone interested in pursuing it.
To read all the previous discussions on the topic: http://make.wordpress.org/core/tag/omnisearch/
Possible Mentors: George Stephanis, ?
Added By: George Stephanis
The existing UI has scaling issues due to saving everything at once. Refactoring with Backbone.js could enable us to save only what is changed. Applicants should be familiar with Backbone.js, JavaScript, and the WordPress codebase. Take a look at the Media overhaul, Revisions or Manage Themes for existing Backbone.js implementations.
Possible Mentors: Dominik Schilling
Added By: Dominik Schilling
We added qUnit in 2013 and have slowly started adding unit tests, how about jumping in and pushing these along? Some JS may need to be refactored to expose more methods, some files that have some tests already may need more tests added. A possible task in this project this could be making the tinymce tests run via the command line.
Possible Mentors: Aaron Jorbin, Eric Mann
Added By: Aaron Jorbin
The way we enqueue scripts and styles in WP is beginning to show its age. WordPress development is now leveraging Grunt, so we have more tools at our disposal for front-end optimizations than ever before. Tools for concatenation and minification are great, but what if we took advantage of dependency loading in Javascript via RequireJS and precompiled JS manifests via Grunt/r.js? How would we provide back-compat for the thousands of plugins and themes that are already enqueueing scripts and styles? How can we get rid of our dependency on global scope in JavaScript and allow multiple versions of libraries to be loaded when necessary, without interfering with one another. The opportunity here is to really rethink everything.
Possible Mentors: Scott Taylor, Aaron Jorbin
Added By: Scott Taylor
Our PHP Unit tests are slow. Like a bull in molasses. Any ideas for making them run faster? Could we run multiple instances concurrently? Could we eliminate the dependency on the database? No idea is too crazy. The opportunity here is to really rethink everything.
Possible Mentors: Aaron Jorbin, Eric Mann
Added By: Aaron Jorbin
Add APIs that make it easy for a plugin to specify dependencies that are required to use the plugin. If the dependency is not already installed, install it. Also, detect situations where two plugins reference a dependency that conflicts. Possible sources for inspiration include Composer (PHP), npm (node), Bundler (ruby). See #22316
Possible Mentors: TBD Added By: Gregory Cornelius
Main purpose of this project would be to update the Distraction Free Writing mode (DFW) to offer better user experience and be more "discoverable".
DFW was updated in WordPress 3.9 as part of the TinyMCE 4.0 upgrade. It is much simpler now: there is no different instance of TinyMCE and no extra textarea (for the Text editor) and title field. Now it is "purely" CSS based, it inserts a modal blocker behind the editor and title without moving them in the DOM.
These changes make it easier to further develop and enhance DFW. It possibly can include couple more components of the "standard" Edit Post screen and eventually keep the standard editor buttons.
This project would have two distinct parts:
It would be developed as a WordPress plugin that will be released on successful completion. (DFW is mostly contained in two JS files that are easy to replace from a plugin.)
Possible Mentors: TBD, Eric Mann
Added By: Andrew Ozz.
The tags and categories metaboxes feel a little dated. Maybe it is time for them to be reworked. While we're at it, maybe we can rethink the old slug and author meta boxes, too.
Possible Mentors: TBD
Added By: Gregory Cornelius
Probably a stretch, but it would be awesome if we could figure out a way to add support web socket support to WordPress in cases where the host is able to handle the connections. Ratchet might serve as inspiration.
Possible Mentors: TBD, Eric Mann
Added By: Gregory Cornelius
We use GlotPress to translate WordPress and related tools and websites to tens of languages. It would be really great if GlotPress would ease the translators work by suggesting similar and/or partial matching translations. Related ticket is #97-glotpress that aims to add a glossary feature, and #263-glotpress that propose a method to detect similar strings on import.
Possible Mentors: Yoav Farhi, Marko Heijnen
Added By: Yoav Farhi
It would make translation more fun if GlotPress had awesome stats that showed progress vs other languages, and vs other users. Stats should be designed to incentivize short term and long term progress (i.e: how do you encourage someone starting to translate a 5000 string project from scratch?
Possible Mentors: Yoav Farhi
Added By: Yoav Farhi
Hey mentors: please don't edit this section without talking to Jen Mylo first. Thanks!
Additional members from the WordPress open source community will be added as mentors based on project needs.
Good luck!!!