This page lists all the Google Summer of Code 2013 projects with confirmed mentors, and which have been approved by the SoC administrator. New suggestions can be made on the Brainstorming page. This page is locked; contact Gerv with edits.
Potential students: you may choose from the list below, but you do not have to. Feel free to submit a proposal for your own idea. However, before you do so, see the guidelines for good ideas. You can also discuss your ideas or application in the #developers channel on IRC: irc://irc.mozilla.org/#developers . Your idea will have a significantly greater chance of being chosen if you can find an existing member of the Mozilla community who is willing to evaluate or mentor it. (You should name that person in your application.)
In addition to the specifically-named projects below, we have also tagged a number of bugs in Bugzilla with the keyword student-project. However, as the idea of a "student project" is wider than just the Summer of Code, students looking through the list will need to decide whether any particular bug listed there is actually the right size and scope for Summer of Code.
Application Advice
Note that if a project suggests it would be helpful to know XUL (Mozilla's user interface description language), you may be able to get away with learning on the job. Don't be put off from applying if the project otherwise looks right for you.
- Read the GSoC Student Guide and follow its advice.
- Read How Not To Apply For Summer Of Code and avoid doing the things listed there.
- Read our examples of good applications: 1, 2, 3.
- Apply on the GSoC site (note that we have an application template).
- It is entirely acceptable to apply for 2 or 3 projects, if more than one catches your eye; if the applications are high quality, that probably improves your chances a little. However, more than 3 seems like spam.
Questions of any sort? Send mail to Gerv and/or Florian. We will try and respond as soon as possible and get your questions directed to the right person. Please allow at least 48 hours for a reply. If you want to contact a mentor and contact details are not here, ask people in the #developers channel on IRC: irc://irc.mozilla.org/#developers.
Mozilla Platform (Gecko)
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Firefox
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Silverfox
|
Silverfox is the codename of a new feature meant to be an operation mode targeted to beginner users who are being guided on learning how to use the web. In this mode, most settings should be locked down, preventing the user from mistakenly tweaking settings or installing unwanted add-ons. It's not meant to be a
tightly controlled, irreversible-without-password setting, but rather a feature that will make it harder to accidentally break or deteriorate the Firefox experience.
This project will be implemented using the Add-on SDK.
|
Good JS skills and ability to work with large codebases. Previous add-on experience is a big plus.
|
Felipe, Jared
|
Felipe, Jared (felipe, jaws on IRC)
|
about:memory for real people
|
about:memory has been a very useful tool for us developers to better understand memory consumption in Firefox and help diagnose and fix problems (See the MemShrink project). We would like to make about:memory also useful for web developers and users by providing better data visualization and analysis that will help them understand the footprint of their websites and improve accordingly. You should be able to come up with useful and creative ways to visualize that data and implement those visualization using JS.
We would still keep the original about:memory but relabel it as something like "Stats for nerds". It is important to keep the original/light-weight version since a visual-heavy implementation of about:memory will use non-trivial amounts of memory.
|
Good JS skills and knowledge/passion for data vizualization. Past work with data visualization is a big plus.
|
Felipe, Jared
|
Felipe, Jared (felipe, jaws on IRC)
|
Fullscreen Mode
|
One upcoming Firefox feature is a fullscreen mode that should provide an immersive experience. This mode will provide a streamlined interface as can be seen in this preliminary mockup. Features such as a clock and other OS indicators (new APIs have been implemented for these from the WebAPI project) might also be part of the project.
The implementation of this feature will mostly involve three languages: XUL, CSS and JS.
|
Great CSS skills are important, and knowledge of XUL/flexbox is a plus. Good JS skills. Past theme development experience would be great.
|
Felipe, Jared
|
Felipe, Jared (felipe, jaws on IRC)
|
Firefox for Android
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Firefox OS / Boot2Gecko
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Calendar
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Thunderbird
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
SeaMonkey
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
NSS (Network Security Services)
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Bugzilla
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Update Code Review module and user experience on bugzilla.mozilla.org (BMO)
|
The current Splinter extension which provides code review capabilities on BMO can be updated quite a bit. We want to pave the way toward integration with CodeReview.js from the Webkit project. Specifically, we want to integrate the Splinter review functionality with the PatchReview Perl module and experiment with integrating that with the CodeReview.js tool.
|
JavaScript, CSS, and Perl web development
|
Byron Jones (IRC: glob)
|
Byron Jones (IRC: glob)
|
|
Web Apps and Libraries
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Web Audio Compatibility project
|
The Web Audio API is landing fully-formed and spec-compliant in Firefox 22, however most of the code in the wild was written when this API landed and have not been updated to the version of the spec that Firefox supports. This project would target any and all open source libraries, games and applications that use Web Audio API and ensure that they work properly with Firefox's implementation.
|
Some expertise in JavaScript, Web Audio, Git/Github, blogging and being polite.
|
Jeff Griffiths
|
Jeff Griffiths / Ehsan Akhgari
|
|
Automation & Tools
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Expand unit tests for Mozbase components
|
Mozbase is a set of low level Python classes that all of Mozilla's automated test harnesses will soon be refactored to use. As we gradually move through this process, we want to ensure that all our modules have explicit unit tests for their targeted use cases. We will work with interested volunteers to define a set of test cases that need to be added, and work with them to add those cases.
|
Python, JavaScript
|
Clint Talbert (IRC: ctalbert)
|
Clint Talbert (IRC: ctalbert)
|
|
Firefox Support (SUMO)
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
QA
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Documentation
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Mozilla IT and Infrastructure
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Persona / BrowserID
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Sync / Services
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Developer Tools
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Add-on SDK
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Foundation
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Notebook Playback
|
The aim of this project is to add record-and-playback to the IPython Notebook - an interactive Python development environment - using popcorn.js (or its successor) so that people can create "screencasts" that are actually first-class content replayed in the browser. Based on discussion with the IPyNB team and Bobby Richter, we believe this can be done as a Javascript plugin to IPyNB v. 0.14 or higher by embedding timing metadata in the notebook's JSON file. The project would require substantial UI design and evaluation as well as Javascript hacking. The result would immediately be used by Software Carpentry and other projects for teaching, sharing code examples, etc.
|
JavaScript, User experience design
|
gvwilson
|
gvwilson
|
|
Release Engineering
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Instantbird
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
FileLinks in Instant Messages
|
Goal: File transfers that work reliably for every protocol.
Description: The Thunderbird Filelink feature allows users to upload attachments to an online storage service, replacing the email attachment with a link. This existing code could be used to implement file transfer. While some protocols support file transfer directly, this approach would provide a fallback that should always work. Designing and implementing a good UI frontend would also be required.
|
JavaScript, XPCOM, XUL
|
Florian Quèze
|
Florian Quèze
|
The frontend should be flexible enough to be able to handle other file transfer methods when they are implemented, e.g. WebRTC for XMPP or DCC for IRC.
|
Additional JavaScript protocol plug-ins
|
Goal: Implement new protocol plug-ins in JavaScript, or create more stable implementations of existing ones.
Description: Instantbird supports protocol plugins implemented in JavaScript, in addition to the C libpurple plugins. The student will either add support for new protocols in Instantbird (if so, explain why this protocol matters) or reimplement in JavaScript a protocol that is poorly supported by libpurple (if so, explain what will be better supported in the new implementation, or why the current implementation is not adequate). All new protocol plugins will go through a strict code review to ensure high code quality. The student working on new protocols should take every opportunity to improve the code and APIs shared by all JS protocol plugins. Please name the protocol or protocols to be worked on in your application.
|
JavaScript, XPCOM, maybe js-ctypes
|
Patrick Cloke
|
Florian Quèze for JS-SIP, Patrick Cloke for other protocols
|
IRC, XMPP, Twitter and OSCAR (AIM/ICQ) have been (or are in the process of being) implemented and should not be considered.
|
Improve JS-XMPP
|
Goal: Ease working with the JavaScript XMPP implementation and implement new features.
Description: Include better syntax for XML handling, implementing handling of MUCs and other features. Feature-parity with libpurple's XMPP support is one of the prerequisites for replacing the libpurple XMPP plug-in that is currently used. One possible improvement would be to support voice and video calls between a JS-XMPP client and a Jingle client using WebRTC.
|
JavaScript, maybe XUL, XPCOM
|
Florian Quèze
|
Florian Quèze
|
|
Skype protocol plug-in
|
Goal: Support Skype chat features as protocol plug-in.
Description: Microsoft will soon dropping support for MSN/WLM, they suggest that all users migrate to Skype. The student is expected to implement support for Skype chat (private messages and multi-user chats) using the SkypeKit SDK.
This project does not need to support voice/video chat to be considered a success. Access to SkypeKit can be provided to a student participating in this project. This may need to be implemented as an extension.
|
C++, XPCOM
|
Patrick Cloke
|
Patrick Cloke
|
|
"Awesometab"
|
Goal: Create a tab that "knows" what conversation you want to open (like the "awesomebar").
Description: The current "Join Chat" dialog is ugly and difficult to use. A user should be able to open a new tab to create a new conversation which will auto-complete fields based on history and server information (e.g. LIST from IRC).
|
JavaScript, XPCOM, XUL, maybe some protocol interactions?
|
Florian Quèze
|
Florian Quèze, aleth
|
|
Emscripten
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|
Security Engineering
Title
|
Details
|
Skills Needed
|
Reporter
|
Mentor(s)
|
Comments
|