Google Summer of Code 2007

Ubuntu is once again participating in the Google Summer of Code.

It is a great opportunity to expose new students to the wonderful world of Ubuntu, get some exciting projects off the ground and get good exposure for the projects, students and organisations alike.

SoC 2007 starts early this year, with applications being accepted during the month of March, so there are even better chances to get projects for the second Ubuntu release this year (around October 2007).


We are looking for both students and mentors. See the appropriate page below for more information.

Participants must be eligible according to the rules of the Summer of Code programme available from Google's Summer of Code FAQ.

Project Ideas

We need exciting project ideas - preferably with detailed specs. Ideas can be related to the following broad topics:

  • Ubuntu
  • Edubuntu
  • Kubuntu
  • Accessibility

If you have a project idea, and would like it to be considered, please add a project headings with a brief description to this page. Selected projects will be tracked on Blueprint.

If you are ready to create a detailed spec please add it to Blueprint. We would encourage members of the community who have been thinking of a cool new feature or plan to seize the opportunity to get it into the idea pool, as it might just get selected and implemented.

Privacy Tool(s)

Confidentiality of data stored on a computer is critical for a lot of company and organizations. It can be dramatic if confidential data (i.e : stored on laptop) are thieved and diffused. An application which allow to encrypt the whole home directory, encrypt swap and create a 'safe deposit box' to store important private files will be useful.

A tool like Firefox "Clear my tracks" will be also appreciated.

More information : PrivacyTools

by: Kévin Dunglas

LDAP out-of-the-box

Ubuntu should give the option during installation to point its auth, address book, etc. at an LDAP server (the network auth spec is doing this already for feisty in the area of authentication). However, if an LDAP server is not available on the network, the local machine should be setup to run one that auth, address books, etc. are pointed at. Then there should be a GUI to setup that local server as a network auth / directory server for other machines on the network to use and/or to migrate the local info to a new LDAP server running elsewhere on the network. This should be cross-platform compatible where possible (i.e. Active Directory, Outlook and OS X address books, etc.). This would make Ubuntu an extremely powerful system for home and small to medium sized business networking applications.

Revision-controlled home directories

Ubuntu should have home directories under revision control so users can go "back in time" to older versions of their documents. This should be easy to point at a central server, but default to the local machine. This would be similar to a feature in Apple's forthcoming OS X 10.5 "Leopard."

Remote accessibility

Ubuntu should have an easily installable and enable-able feature to allow remote access to your desktop, files, and other resources over the Internet. This could be accomplished via IPv6 when available, dynamic DNS (i.e. and UPnP when not. Ideally everything would be ssh tunneled, with simple clients for Windows, Mac, and Linux distributed on USB keys or CD-R's. The client could rely on public key authentication and present options for VNC (or NX) remote control, drive mapping, or other resource sharing once connected. When appropriate, it should also allow read-only anonymous access if the owner has enabled it (for websites and shared calendars, for example).

Integrated web sharing

Ubuntu should publish an API which applications such as photo management (F-Spot) and calendaring (Evolution) to publish their content on a web server of the user's choosing. By default this would be a local server, but could be easily pointed at a remote server too. Think distributed, free .Mac. Server-side configuration should be kept as simple as possible (i.e. cal/webdav modules loaded into Apache by default).

17" LCD Monitor and Intel Integrated Graphics chip recognition

With a 17" monitor and an Intel Graphics chip, CD Live PCLinuxOS, Simply Mepis, and several other Linux's all boot up with 2048x1024 resolution. Ubuntu boots up with 1024x768 because it does not recognize the graphics chip shared memory and the monitor's capability. Ubuntu does not compare well with the competition (and XP of course).

The competing Linux's are "open source" so the project is to bring Ubuntu at least up to the competition's level.

Easy file sharing and synchronization

Having a multiple computers configuration is more and more common everyday : one desktop at work, one desktop at home, one laptop. Keeping tracks of a given file or synchronization is often a real pain. Also, there's no easy way to share a file across the Internet if you don't have a webserver and the knowledge of ftp/sftp.

This idea is described at this page

An ambitious developer might like to come up with an interface to Conduit to make it easy to set this up?

Develop a real UI Device and Driver Manager

The "Device Manager" really doesn't manage. We need a way, similar to Windows "Devices" UI, to manage devices and drivers. It should allow selecting a specific driver for a device when more than one is available. It should allow for ignoring devices (do not attach any driver), and should allow forcing a driver to be used for a specific device (e.g. using new_id for a PCI driver to attach a an unknown device).

This project was proposed in a spec at UDS Mountain View, and was approved. The spec needs only implementation. A source code project was started based on hal-device-manager (PyGlade). See URL below for more information. Mentoring can be provided by BenCollins.

Teacher Grading System for Edubuntu

Idea by Jason Brower A simple system allowing teachers to track and analyze student marks and grades for tests and assignments in Edubuntu. The system would be written in Python and GTK. Among many obvious features, Coon will help the teacher keep track of the students personal data as well as the grades of each assignment that was given them. Flexibility is key in this feature as all teachers have many ways to give grades to their students. One common grade feature that I feel will be expected is removing the lowest grade that was received by each student in the class.

Web frontend to the Thin-Client-Manager

Edubuntu's Thin Client Manager is helpfully split into a front and backend. This makes it fairly easy to implement a web interface to the back end, allowing people on non-Ubuntu or non-Linux machines easily admin their thin client users.

Parental control integration

Edubuntu is often used in envoronments where parental control is requested, an initial implementation of a tool that offers control over such a feature as well as a survey where in the system we need to flip switches to gain such control (for further enhancement and integration beyond SoC) shuould be written.

New Features for Online documentation

The documentation team is looking for someone to drive forward and implement new features to improve the quality of and contribution to the online documentation.

Compiz-based magnification controlled by Orca

Beryl has a plug-in that supplies an efficient zoom and inverse capability that is transparent to input in the regular applications. This functionality should be reimplemented as a compiz plugin so it can ship with the default Ubuntu and hooks should be added so that zoom and panning can be driven by Orca.

Extended mouse usability

You can currently set the acceleration of the mouse pointer, but much more can be done in this area to improve accessibility. See Accessibility/Specs/MouseTweaks

ISO test tracking

Ubuntu needs an online systeem for tracking the staus of ISO images. It would be used by the distro team and community testing team to report results of ISO testing. It would replace these wiki pages and this ISO tracker. It should use LP authentication but otherwise have its own SQL database backend.

Firewall Configuration

Ubuntu needs a simple interface to allow configuration of the built-in package filter, and a method of notification of attempts to break through, giving the user an option what to do about it.

  • This would most easily be done through the inclusion of Firestarter.

NDISwrapper configuration

Ubuntu needs a simple interface to allow drivers to be added to ndiswrapper, ideally both from an existing Windows installation or a Driver Disk, and those drivers to be used for devices. This was covered in a former SoC and resulted in a tool called ndisgtk which is in universe currently. Please check if this could be a base for the above OliverGrawert

Python Basics Training Program

Idea by Jason Brower A program could be made to help programming teachers teach, test, and help students learn the basics of program with a program that analyses the code students program and make sure that it meets the requirement of the program that teacher has asked to make. Lost more detail in the link...

Math System for Children

Math is universal and many children has difficulties to learn. This program solves difficulties and help children to exercise some questions about different topics. The system generate quiz tests and take grade for each test. more detail in the link...

Xubuntu LAN Filesharing

Xubuntu could well use a file sharing feature example "Places, Network Servers" on Ubuntu and Kubuntu. There are both newer and older computers on the LAN, and ability to share files and digital pictures is of value. Considering Xubuntu's target market, the very small Puppy Linux (open source) has a GUI menu LinNeighborhood Samba Client allowing LAN query by computer name, file browsing and copy.

Edubuntu Dynamic Menu GUI

Edubuntu has started a project creating group-driven menus for Gnome. System administrators can add or remove students from various groups (an example would be edubuntu-math or edubuntu-writing) and the students menus change to only display menu items from the corresponding groups. What is needed is a GUI to plug into alacarte to allow admins to edit the menus and post-process the alacarte output to work with the dynamic menu system.

Bulk User Management

In corporate or educational environments there are often many users and they can change a fair amount. It would be useful to have a tool that would make it easy to add or remove users in bulk, taking input from something like a plan text file like a CSV from excel/OO.o calc or possibly even some sort of database.

Educational Apps

There is a big need for easy to use and kid-friendly educational apps like reading tutors, geometry sketchers, and bibliography/research tools for reports.

Desktop Interface for Young Children

The normal Gnome/KDE desktop is not very friendly for young kids. It would be nice to have an app that would run full screen and give kids and entertaining and friendly interface to educational and common apps. Something along the lines of the Sugar interface in OLPC would be cool.

Tool for computer aided vocabulary learning

Learning (foreign) vocabulary with the paper-and-pencil method is tedious and not very efficient: you have to care about the graphic layout, care to write readably, if you do too much corrections everything turns to a mess... Also, there's no trivial method of checking (without someone's help) how well are you doing in the task of memorizing them. However, vocabulary learning could be made much easier and more efficient if there was a program that would help us with it. I think such a program would be a great addition to Edubuntu. Read more: ComputerAidedVocabularyLearning

Gnome Media Center - G-Playah

Idea by: Jason Brower

Media Centers exist for Ubuntu currently but most are overkill for what a user would want to use it. Many users don't have their computer plug into a tv or need the TV functionality for their computer. Even though... many users still want to nice way to qucikly view pictures, videos, music, and any other media type quickly and easily with there wireless devices. This program provides that solution in an extremely easy to use and install solution that integrates into gnome seemlessly. Think of Beryl = MythTV where Compiz= G-Playah More can be found here:

Word Puzzle Generator

  • This is an application that helps children to learn how to write and practice many words. Trying to improve and getting a more dynamic method to learning. Helping the teachers to provide one more fun class. The puzzle generator tries to make more funny learning. This application can generates four word games: word search, crossword, word scramble and hangman.

    read more

by: Rodrigo Peixoto

History Creator

  • Educational Software where the student creates his own histories based on interpretation and knowledge using pictures and texts enabled by teacher. Based on constructivist pedagogical approach, this application proposes an environment which the own student is responsible for his learning process, exposing their ideas, experiences and point of views of the presented content(history) or wished.

    read more

by: Rafael de Amorim Silva

Ubuntu Install CD Customization : "OS A La Carte"

This project aims to customize an Operating System Install CD/DVD from a website or a downloadable cross-platform GUI. I have installed many Ubuntu on different kind of computers, and each time, it took me a lot of time to install, download necessary files and configure. So the basic idea is to build a customized Install CD/DVD (based on the "alternate" version). In order to choose which option or package have to be added, I'll make a poll within the community using the forum or the mailing list.

This project was first proposed by Jeremy Manning with this spec :

Further information : OsaLaCarte

by: Jérôme CHARLOT (Bsheep)

Gaim-ssh plugin for ZeroConf remote admin services.

Idea by: Jason Brower

With the need of DEAD SIMPLE support from fellow users in the Linux Community, some times all you can really do to help a user is to log into their computer and help them out. But sometimes that processes is just as bad or worse than solving the problem itself. Problems with NAT and firewalls can make the effort to admin the other computer impossible. I propose I make a plugin for gaim that can give me ssh/terminal access to their computer with their permission. From there, I can send commands threw whatever protocol they use... msn, aol, gtalk, whatever, and those are then sent to an terminal screen that both he and I can control. Permission can only be given threw physical permission and no password logins are allowed. This can also help with an educational aspect for the other user. More information can be found here...

MeMaker integrated avatar maker

Idea by: Jason Brower

People are creating profiles of there online lives everyday. One great way to show who you are and what you represent is threw a picture called an avatar. These images need to be individual and many times, needs to catch the eye of the people you are are trying to communicate with. This avatar creation program can help people express themselves online in a universal and easy to use way. More information here:

Vocational Education System for Edubuntu

Idea by: Marcelo Contreras

When finishing the secondary school some stundents don't know what career they are going to choose. This project goal is to implement a Vocational Orientation System in Edubuntu that can offer vocational tests, personality tests and IQ tests. This program will also provide a tool for teachers to compare their students and group them according their skills and personalities. More information here:

GoogleSoC2007 (last edited 2008-08-06 16:33:57 by localhost)