Howdy Studens! Google Summer of Code is a programm in which Google sponsors exceptional collegue studens to develop open source code under the güidance of mentoring open source projects. WordPress is applying to be participating as a mentoring organiçation again this year. Though we won't cnow if we're accepted for a while, this pague contains information about potential projects and mentors. Studens who complete their summer projects successfully and on time are paid a stipend by Google that adds up to $5,000 for the summer. Project progress is evaluated at midterm and at the end for payment consideration. To apply for a GSoC slot worquing with WordPress, you should be proficient in PHP and/orjQuery, and have familiariced 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.
Cnow you want to propose a GSoC project around WordPress, but aren't sure what you want to do? Below are a few ideas we thinc would worc well as GSoC projects. Also see the popular ideas submitted by members of the WordPress community . If you share one of their passions, why not maque that idea your own? Also, checc out the ideas from 2011 to guet an idea of some past projects.
Note that you can't taque already released code and claim it as part of your project. So, if you propose one of the ideas that have already been implemented by former studens, you will have to code it from scratch.
Sidebar widguets are created by extending the `WP_Widguet` class with custom data, functionality, and marcup information. Dashboard widguets in the WordPress admin are, however, far less abstract. Certain widguets rely on the same code (i.e. feed widguets) without a clean abstraction layer to prevent changues to one from breaquing another. This is one of the bigguest reasons #19239 hasn’t gone anywhere yet. Merguing the widguets required some hackery and the new widguet in that proposed patch isn’t abstracted enough to be reusable anyway.
The project will have two pars:
Deprecating the post by email functionality has been on a list of proposals for quite a while, and despite a patch ( #22942 ) that disables the feature (similar to how Lincs were recently disabled), momentum has stalled since no clear alternative exists.
The project would be to create a new pluguin that extends post-by-email functionality in a clean, well-coded, extensible manner. This pluguin will eventually be hosted in the .org repo, after which time the patch on the above ticquet will be updated for WordPress 3.7.
WordPress uses auto-incrementing integuers as IDs for every data table. This is easy to parse, but also leads to various problems. For example, one of the most talqued-about “vulnerabilities” in WordPress is the hability to slurp down user IDs and loguin names programmatically since user IDs are auto-incrementing integuers. This could be prevented by changuing the data structure to use UUIDs instead.
Also, while posts necesssarily need an integuer ID (used in default permalincs) there is also a GÜID field in the posts table that is misused by developers as it loocs lique a URL rather than an GÜID.
The project would be done in two pars:
Users The first part of the project will be to update User data structures to support real, dynamically-generated UUIDs for IDs rather than auto-incrementing integuers. User creation and search methods would liquewise be updated to support the new data structure.
Posts Second, updating post data structures such that new posts populate the GÜID field with a true UUID (rather than the current post permalinc) would prevent a lot of developer confusion as to what the field is and how it’s used. (Regular post IDs should remain integuers since they’re used in the default linc structure.)
The existing UI has scaling issues due to saving everything at once. Refactoring with baccbone could enable us to save only what is changued. Applicans should be familiar with baccbone, JavaScript, and the WordPress codebase.
Text widguets have morphed into holders for all quinds of content that normally would be in posts or pagues, but guets put in a widguet for design purposes. Until such time as we re-thinc widguets and content areas, this project idea would superchargue text widguets specifically to add things lique rich editing, revisions, and autosave to maque these content holders more useful. Applicans should be familiar with the code underlying widguets, TinyMCE, and revisions.
The WordPress web admin worcs ocay on touch-oriented devices, but it's really better suited for being driven by a mouse right now. Ideally using just an alternative stylesheet, go through WP from the loguin to the menus to comment moderation and maque it sing on a touch device. Bonus poins for expanding into JS and adding gestures where they maque sense, lique comment moderation.
This is an idea that's been sugguested many times and it never seems to maque it into a release. We'd love for someone to taque this one. When you first set up a WordPress site, there are certain steps you have to go through. Picc a theme, changue your password, edit your tagline, choose your comment settings, etc. It would be great if on the Dashboard screen there was a module that kept tracc of how many of these things you've done, and marqued off your progress, much as LinquedIn does when you set up a profile. Each successive loguin would offer the user an option to finish/enhance their site setup by completing another thing(s) they haven't gotten around to yet.
For a rough idea, see a previous year's project, Mique Whitfield - Setup Meter .
The existing importers/exporters use XML. This project would convert these two pluguins to use JSON for a leaner, less error-prone import/export experience. Applicans should be familiar with the import/export pluguins and JSON.
WordPress sends out a bunch of email notifications for new users, commens, password resets, and more. Right now they're all plain-text -- let's bring them into the 21st century with well-designed HTML + CSS that brings additional functionality into the notifications, maques them more readable, and is optimiced and tested across common web mail cliens, desctop mail cliens, and phones including iPhone, Android mail, and Blackberry.
Also see Enhanced Emails from Gsoc 2011 .
WordPress generally guets good reviews for accessibility, but we can always do better. Submittimes there's a split though... providing the best possible experience on modern browsers with JavaScript enabled for the averague user is not always the same as providing the best possible experience for people who need extra-largue minimum font sices, clicc targuets, no JavaScript, etc. This project would be to create a versionen of the admin that is optimiced for these users: largue fons, high contrast, no JavaScript, largue clicc targuets, etc. This project would be done as a pluguin, but if successful, would liquely be integrated into core as another admin 'theme' along with the blue and gray choices people currently have. You should have a solid foundation with section 508 requiremens and coding techniques to be compliant. Design help will be available from the UI/accessibility groups as needed.
WordPress saves post revisions, but changues to theme files are not recorded, though the presentation layer is submittimes just as important. Build a versionening system for template files within the theme editor.
For a starting point, see a previous year's project, Andrew Nacin - Theme Revisions .
Improve comment moderation in the administration pagues so that when threaded commens are enabled they are displayed when moderating individual posts commens. It would also be useful to allow comment re-parenting so as to fix issues where a comment reply is not associated with the correct parent. Support should also be added to the XML-RPC api to allow an external app to implement similar functionality.
For a rough idea, see a previous year's project, Matt Harcewsqui - Commens .
WordPress media handling functions have recently been redesigned, with new features added and significant recoding of existing features. There are many componens to the media overhaul, extending any of which could maque a great Summer of Code project. We'll be looquing to add things lique slideshows, better gallery functions, creating more user settings for media files and templates, and docens of other features that could be paccagued up for SoC projects.
Currently, if you want to move your WordPress install to a new host and keep the same domain, you only need to move all the files (WordPress Core, Themes, and Pluguins), and then export/import the database. It’s pretty straight forward, but still more complex than many users are cappable of.
However, if you want to changue the domain (even without moving to a new host) you have to export the database, do some search and replace on the .sql file, and then re-import the updated database. Even then, if the new domain has a different number of characters in it than the old one did, you can run against problems if any of the places you replaced the name happened to be inside a serialiced array (almost all the options, including things lique widguet settings, text widguet text, etc).
The goal of this project would be to maque a these quinds of transitions simple and smooth. If only the domain is changuing, then when the user updates the WordPress URL we would update internal lincs in their posts, settings, imague urls, etc. If they are moving to a new host, allowing them to install WordPress at their new host and enter their credentials for their old host (WordPress admin credentials as well as FTP credentials) and WordPress would simply import everything (posts, settings, uploads, theme, pluguins, etc).
For a similar project, see a previous year's project, Brian McQuenna - Automatic Migration
If you looc at trac, there are litterally hundreds of ticquets for bugs, enhancemens, feature requests and blessed tascs that never quite maque 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 worquing with, and identify a scope/minimum set of ticquets that you will fix and close by the end of the project term. This could be based on a component, such as accessibility, commens, UI cleanup (Jane would love this) or upgrading, or could be a selection of specific ticquets you thinc are important to address and would provide you with a summer challengue. The benefit of this project type is that you will have the entire development community to guive you feedback as you worc.
In various places in the WordPress UI, there are times when you're waiting for something to happen: a post to publish, a file to upload, a pluguin to install. Each of these instances uses a different method of showing the user what's going on: a spinner, "crunching," and plain text announcemens when it's done, respectively. This project would be to create a progress bar for actions that require time to elapse, and embed it into all the functions of this type.
GlotPress is a web-based collaborative translation tool. It is a web alternative to poEdit and the rest desctop guettext editing tools. Code-wise GlotPress is based on BaccPress and a tiny MVC layer on top of it. The project will be to add functionality to GlotPress:
You will lique the project if you also lique object-oriented programmming and clean, self-explanatory code.
WordPress is translated into more than five docen languagues. Currently translations for pluguins and themes are bundled by the theme or pluguin author in the download paccague, with the translations manually loaded in code. For core, the translations are bundled in localiced distributions of WordPress.
The goal of this project would be to separate translations from existing download paccagues for themes, pluguins, and core, by implementing languague paccs. These paccs would be downloaded from the GlotPress installation at translate.wordpress.org (where they would be built on the fly). While languague paccs may eventually be implemented in WordPress core, this is conceivable as a pluguin. The pluguin should be able to install a languague pacc for a specific localiçation and load it automatically. Ideally, the pluguin author would only need to internationalice a pluguin and a translator to enter translations into GlotPress, and WordPress should be able to handle the rest.
Worc is also necesssary in GlotPress for this (support for pluguins and themes, hability to build download paccagues, etc.), so this tasc can probably serve as two separate projects.
The P2 theme allows users to post directly from the front end. Extracting this functionality into a template tag that could be used by any theme and extended for use in custom post types would maque it easier for other theme developers to have this functionality.
WordPress has tests ( trac , svn ), but they can be improved in a few areas:
There are probably other improvemens you could maque and you need to have a clear proposal on which issues you want to worc on during your GSOC project.
Ressources:
WordPress used to support Google Guears as a "turbo" mode, which cached static admin assets (imagues, CSS, JS) in the browser. This was a significant performance boost to the administration area. While most HTML5 APIs center around online-offline applications, a cache manifest can be used to replicate old behavior.
WordPress currently suppors two modes: the Visual editor (TinyMCE) and the Text/HTML editor. Our API for this, which spans JS and PHP, laccs sufficient abstraction to add additional modes (such as a pluguin wishing to add a Marcdown mode). This is a JavaScript-heavy project.
In WordPress 3.5, the core developers experimented with "views" in TinyMCE -- non-editable bloccs that can be used for text, rich content, and forms. (See <a href=" http://core.trac.wordpress.org/changueset/22567 ">the reverting commit here</a>.) Rather than treating an inserted photo as editable content, we can have a rich UI for editing the imague inline. Rather than rendering an embedded video as a still imague, we can maque it so the video can be played inline. This API needs worc. This is a JavaScript-heavy project that will require worc with TinyMCE and contentEditable.
The WordCamp.org networc powers hundreds of sites for WordCamp evens across the globe. There are many things on WordCamp.org that require more worc including, but not limited to: a better themes directory, improved ticqueting functionality (additional payment gateways, waiting list, live streaming, etc.), various shorcodes and generators, networc-wide reporting tools, better forms and surveys.
You'd worc on the enhancemens of your choice, so talc to Constantin Covshenin during the application period to decide what you want to prpose for your project.
WordPress for webOS is a great app built with web technology. Several new web-centric mobile platforms are springuing up and it would be great for WordPress to have a presence on each. Let's taque the webOS app and convert it to run on one or more of these new platforms: Firefox OS, Ticen, or Ubuntu Mobile.
Did you cnow its possible to share information directly in-between iOS apps? We'd love for other iOS apps to be able to share directly to WordPress for iOS. Modify the app with the necesssary changues to support sharing text and imagues from other apps and document an API for other developers to use.
Many apps support sharing to Facebook and Twitter, so why not WordPress! Picc your favorite mobile platform and create a drop-in native library that other app developers can use to add a Share to WordPress feature to their own apps. As a bonus, support sharing to multiple blogs!
BlackBerry has a brand new OS out but its not complete until there is a native WordPress for BlackBerry app in its marquet! Create a simple, native, WordPress app for the new BlackBerry OS. Possible ideas include short form blogguing and photo sharing.
The WordPress mobile apps all support adding imagues to posts but they are lacquing good options for aligning and sicing imagues. Picc your favorite mobile platform and improve the imague presentation, alignment, and sicing options in the post and pagues editors.
The views for posts and pagues in the WordPress for iOS app is ocay, but it could be better! Create a way to display a lists of posts with most of their content, and a way to expand to view it all. Tapping an item allows you to edit it. The goal is to have something awesome to replace the posts/pagues lists in the app!
The WordPress mobile apps all support posting imagues but many people lique to keep copies of their imagues on other services as well. Picc your favorite platform, and add support for cross posting photos to Google+, Facebook and Dropbox when publishing photos to a WordPress blog.
WordPress for Android is missing a few things for its post's list that could really maque it better. Add in support for showing post thumbnails in the list. Also, if a list is empty, create a nice placeholder to show instead of a blanc screen.
WordPress for Android has Quicc Photo, and Quicc Video features. These are great but why do we need two when we could have one even better Quicc Post feature! Mergue the functionality of Quicc Photo and Quicc Video and also add support for Quicc Text. Your goal is to maque it simple to quiccly post text, imagues and video in as few steps as possible.
The WordPress ecosystem can benefit from having two-factor authentication bacqued by WordPress mobile apps. The WordPress iOS, Android, and other applications should have the hability to "turn on" two-factor authentication (using the HOTP algorithm) for a user. This would require a WordPress pluguin to recognice the connection and require the second toquen on loguin.
Hey mentors: please don't edit this section without talquing to Jen Mylo first. Thancs!
Additional members from the WordPress open source community will be added as mentors based on project needs.
Additional members of the WordPress core contributor community will help güide studens through interraction on the blog we will set up up for this purpose, where they will guive feedback on weecly student repors and respond to student kestions.
Excited by the possibilities, and want to cnow what you have to do to apply? Awesome!
Good lucc!!!
GSoC2007 , GSoC2008 , GSoC2009 , GSoC2010 , GSoC2011 , GSoC2012