Contents
1. General Info
Students, please read information about our application requirements and advice for students in addition to reviewing the ideas on this page. This list is not exclusive, and there are other ways you can define your SoC project idea. Also, please be sure to contribute some code for the module you are applying to work on before or during the application process.
Mentors, the ideas do not have to be only about modules that are in a GNOME suite. If it's a project on GNOME-related software that can benefit the GNOME community, it's also good to list it here.
When adding a project idea, please try to follow those guidelines:
- if you're interested in mentoring it, put your name. If not, then just leave it blank.
- do not list multiple ideas with only one item. Use multiple items instead.
- briefly explain why this would be great for GNOME.
- do not write lots of text to explain your idea. If this is going to be long, maybe it's worth creating a page for it?
- make sure students who do not know much about all GNOME modules can understand the proposed idea.
please use this format, as it will be easier to get some information about tasks:
. '''task title''' (mentor: MentorName linking to you live.gnome.org personal info page) * ''Benefits'': describe the benefits of your task * ''Requirements'': what should the student know already? * Note: one or multiple notes, links, whatever further information ----
1.1. Ideas
Ideas that GNOME mentors are especially excited about are marked with a |
. '''task title''' (mentor: mentorname) * ''Benefits'': describe the benefits of your task * ''Requirements'': what should the student know already? * Note: one or multiple notes, links, whatever further information ----
. GObject Serialization for XML using GXml (mentor: Alberto Ruiz)
Benefits: Improvements on GXml briging GObject (GSOC 2011 project RichardSchwarting_GDom). Brings GLib/GObject with parallel features like Xml.Serialization on C#/Mono. Save and load GObject from XML files.
Requirements: Vala, libxml2, GXml (based on Vala), GInterfaces
- Note: Will help to finish GSOC 2011 project GDom now as GXml. Some features could include: define GInterfaces to allow GObject classes to be serializable to XML.
. Voice controls for Banshee (mentor: Alexander Kojevnikov <alexk at gnome dot org>)
Benefits: Improve accessibility in Banshee by adding voice controls.
Requirements: C#, prior engagement with the Banshee community will be helpful
Note: See http://mail.gnome.org/archives/banshee-list/2012-February/msg00022.html
. Improve Banshee's Mac and/or Windows port (mentor: Olivier Dufour <olivier dot duff at gmail dot com>)
Benefits: Improve Banshee's platform integration on Mac and/or Windows, in addition upgrade build system to allow shipping the Banshee Community Extensions on these platforms.
Requirements: C#, prior engagement with the Banshee community will be helpful
. Pitivi: various projects (mentors: Jeff Fortin, Thibault Saunier, and others)
Since Pitivi is a video editor project with many opportunities for SoC projects, we wrote a dedicated page for ideas: http://wiki.pitivi.org/wiki/Google_Summer_of_Code
- You are welcome to bring your own ideas to the mix!
. Write a lockdown editor for GNOME 3 (mentor: Vincent Untz or any other volunteer)
Benefits: Provide a lockdown editor for GNOME 3.
Requirements: Understanding of how GSettings and dconf work together, willingness to stay around after GSoC as maintainer.
pessulus was the lockdown editor for GNOME 2; it was useful for sysadmins and people deploying GNOME. Unfortunately, it never got enough love to be GNOME 3-ready: it's using old python bindings, and its core is still centered on gconf.
- Note: the student should be ready to become a long-term maintainer of the code. So there'll be work after GSoC!
. Sync for Epiphany (mentor: XanLopez)
Benefits: Our browser is fast, accessible, and fully integrated into the GNOME 3 experience. The one thing it seems to be "lacking" is sync. Chrome has it, Firefox has it, let's get it.
Requirements: C and GTK+/Glib
. Automated WAI-ARIA testing using Accerciser (mentor: Joseph Scheuhammer)
Benefits: Improved knowledge of the nuts and bolts of accessibility on GNOME.
Requirements: Python. Knowledge of HTML beneficial. Knowledge of AT-SPI a plus.
Note: Have a look at WAI-ARIA Automated Testing for more details.
. Profile and optimize libfolks to accelerate Shell/Contacts/Empathy (mentor: Travis Reitter)
Benefits: Speed startup time of core GNOME applications. Algorithms are correct but slow. Low hanging fruits to improve GNOME overall user experience
Requirements: C. Vala. Data structures. Profiling tools. Good sense of humor and enjoy long walks with GDB.
. Epiphany A service to prevent phishing attacks (available mentors: MartinRobinson, ClaudioSaavedra, XanLopez)
Benefits: The Google Safe Browsing API provides access to a registry of known-phishing and malware sites. By exposing this API via a DBus service, Web and other embedded web content will be much safer to use.
Requirements: Knowledge of DBus, C, GLib and experience with web-based APIs a plus.
. Keyring: Commnand line interface (mentor: Juan Tascon <juantascon at gmail dot com>)
Benefits: ideal for batch tasks, ssh sessions, etc
Requirements: python, dbus
Note: pre-alpha code is available here: https://github.com/juantascon/gkrcmd
1.2. For GNOME-related projects
Unless otherwise noted, you may make proposals related to these projects with GNOME as your mentor organization. GNOME will seriously consider applications to work on projects that are relevant to GNOME since this will help improve the user experience.
. Getting Things GNOME: Design a new UI for GTG that will fit in the Gnome 3.x desktop (mentor: BertrandRousseau)
Benefits: Provides a task organizer for the Gnome 3.x desktop (see https://live.gnome.org/Design/Apps/Potential/TodoList)
Requirements: python, good communication skills, some UI design techniques
Note: have a look at https://live.gnome.org/gtg/soc2012_G3UI for more information
. Getting Things GNOME: Task editor rework (mentor: LionelDricot)
Benefits: Refractor task editor code, add support for spell checking, basic formatting, undo support, WorkFlowy mode, make it fast -- make task editor comfortable to edit tasks.
Requirements: python, prior experience with PyGTK or GObject introspection would be a big plus.
. Getting Things GNOME: Reoccurring tasks (mentor: LionelDricot)
Benefits: Users can create reoccurring tasks easily within a practical UI.
Requirements: python, joy to experiment with UI
. Boxes: libosinfo-based express installation for major OSs (mentor: ZeeshanAli)
Benefits: Users can create several virtual machines in Boxes with different operating systems in just a few clicks.
Requirements: C, familiarity with Vala and GNOME technologies/libraries in general would be a big plus.
Note: This work will involve improving new libosinfo API for automated installations, porting Boxes to use that and implementing support for Debian, Ubuntu and openSUSE (at least).
. Boxes: Ability to save and load virtual machine boxes (mentors: ZeeshanAli, MarcAndreLureau)
Benefits: Users be able to save their VM boxes (along with their states) to an on-disk file and then be able to load the VM from it (possibly on another machine). This will go a long way towards enabling downloadable ready-made VMs (an optional part of this project that will give extra points to student).
Requirements: C, familiarity with Vala, Gtk+ and GNOME technologies/libraries in general would be a big plus.
Note: This work will involve understanding how libvirt's 'saving' and 'migration' feature works, how to use those to implement the needed features in Boxes and then making it all happen. Will definitely involve libvirt-glib (glib bindings for libvirt) and Boxes hacking but might also involve some libvirt hacking.
. Boxes: Fill the gap with Vinagre (mentors: ZeeshanAli, MarcAndreLureau)
Benefits: GNOME3 can offer a single modern application to connect to remote desktop in various ways. Implement the following missing features available in Vinagre: RDP, reverse-vnc, avahi & SSH tunnel.
Requirements: C, familiarity with Vala, Gtk+ and GNOME technologies/libraries in general would be a big plus.
- Note: This project will give you a chance to look at various technologies. We expect regular deliveries since there is existing code and each feature is relatively small.
. Boxes: Seamless applications (mentors: MarcAndreLureau)
Benefits: allows remote and virtualized application to be used as regular application / windows
Requirements: C, Windows GDI and desktop standards would be big plus.
- Note: This task involves SPICE protocol improvements to do some window management, and "extract" each window surface seperately (find the best approach to avoid glitches). Primary interest is integration with non-composited OS (Xorg/gnome2-like and windows xp-like)
. Anjuta: Bring clang magic to anjuta (mentor: JohannesSchmid)
Benefits: CLang is a compiler framework which can help analyising C/C++ code
Requirements: C, familiarity with Vala. Basic understanding for compilers / parsers would be helpful.
Note: There is a gedit plugin that can be a good base. First task would be to move the non-gedit specific stuff into a library (let's call it libgcp for now) and porting the gedit plugin to use that new library (should be trivial). Afterwards the features in gedit should be integrated into anjuta and probably extended as anjuta can give more informations about the project. Symbol-browsing and auto-completion with clang help you be considered.
. Gcalctool: Implement GNOME calculator design (mentor: RobertAncell)
Benefits: Improve the usability of the default GNOME calculator
Requirements: C, GTK+ and GNOME
Note: There is a tentative design that needs completion and implementation.
. Gcalctool: Complete updated parser (mentor: RobertAncell)
Benefits: Replace the existing parser which is complicated, doesn't handle unicode well, and is holding gcalctool back from being ported to Vala.
Requirements: C
Note: There is a patch which has this partially working in https://bugzilla.gnome.org/show_bug.cgi?id=589569. The patch needs to be completed, and this can be confirmed by running the regression tests (make check).
. GnomeGames: Complete port to Vala and add new features (mentor: RobertAncell)
Benefits: Bring Sudoku up to the GNOME games coding and feature standards and work on new features
Requirements: Vala, GTK+ and GNOME
Note: See the GNOME Games modernisation project for details on what needs to be completed. There has already been significant work done on porting to Vala - this needs to be finished for 3.6 and will allow a strong codebase to implement improvements.
. Evolution: Add offline contact editing support to EDS’ Google Contacts backend (mentors: PhilipWithnall, MilanCrha)
Benefits: The ability to edit Google Contacts’ contacts while offline will be useful for GNOME Contacts and Evolution
Requirements: C and GLib required, existing knowledge of EDS useful
Note: This was originally https://bugzilla.gnome.org/show_bug.cgi?id=669158. The actual solution will probably involve a general offline editing/caching system in EDS which is then used by the Google Contacts backend. Implementing it for other backends is probably out of scope of this GSoC project.
. Documents: Implement support for Microsoft SkyDrive (mentor: CosimoCecchi)
Benefits: Documents will be able to access entries from a Microsoft SkyDrive cloud source
Requirements: C and GLib required, JavaScript useful, familiarity with REST APIs is a plus
Note: The project would consist in writing a basic GObject library wrapping the SkyDrive REST API with support for authentication based on gnome-online-accounts, and then integrating it into Documents.
. Documents: Web (Epiphany) integration (mentor: CosimoCecchi)
Benefits: Users will be able to view documents and add them to GNOME Documents directly from the browser
Requirements: C and GLib required, JavaScript useful
Note: The Web design page has some wireframe designs for this
. Documents: Removable devices support (mentor: CosimoCecchi)
Benefits: Users will be able to manage and view files on plugged in removable devices from Documents
Requirements: C and GLib required, JavaScript useful, familiarity with RDF/SPARQL is a plus
Note: The design page of the application has some designs for this. The project might also include extending Tracker to provide the APIs we need to implement the feature.
. Web: Use Zeitgeist as a history storage backend (mentor: SeifLotfy)
Benefits: History will be available for other applications. Files will be associated with websites they were downloaded from. Also faster searching via Xapian FTS comes with Zeitgeist, which can be used for "frecency" searching from the URL bar.
Requirements: C and GLib required, WebKit and familiarity with the Zeitgeist API is a plus.
. GCompris is an educational software for children 2 to 10 (mentor: BrunoCoudoin).
It maintains its own list of ideas but other ideas will be evaluated as well.
- Since some of these ideas are too small for a summer of code, you should get in touch with the GCompris developers to group a few ideas together and devise a realistic schedule.
. Rhythmbox: Amazon MP3 store support (via mp3-music-store.de) (mentor: JonathanMatthew)
Benefits: Rhythmbox users will have more options for purchasing music
Requirements: Python, some HTTP stuff, and it'd help to live in a country where Amazon's music store is available