These ideas were contributed by our developers and users. They are sometimes vague or incomplete. If you wish to submit a proposal based on these ideas, you may wish to contact the developers and find out more about the particular suggestion you're looking at.
Being accepted as a Google Summer of Code student is quite competitive. Accepted students typically have thoroughly researched the technologies of their proposed project and have been in frequent contact with potential mentors. Simply copying and pasting an idea here will not work. On the other hand, creating a completely new idea without first consulting potential mentors is unlikely to work out.
When writing your proposal or asking for help from the general KDE community don't assume people are familiar with the ideas here. KDE is really big!
If there is no specific contact given you can ask questions on the general KDE development list firstname.lastname@example.org. See the KDE mailing lists page for information on available mailing lists and how to subscribe.
When adding an idea to this section, please try to include the following data:
If you are not a developer but have a good idea for a proposal, get in contact with relevant developers first.
A KDE music manager and player.
Brief explanation: Using the UPnP protocol users can, for example, share music from their Vista computer to a PS3. Amarok lacks any sort of UPnP support. Being able to act as a client (the PS3) or possibly a UPnP media server (Vista) would be useful. See libupnp for more information about UPnP's implementation in open source.
Material Prerequisite: Some UPnP devices or computers to test with. Good excuse to buy a PS3. :>
Knowledge Prerequisite: C++ and Qt. gUPnP is a glib-based library, so experience with C and Glib is likely quite helpful if that library is chosen. And of course, understanding of UPnP networking and devices wouldn't hurt!
Mentor: Potentially one of several. Contact the amarok mailing list or ask in our IRC channel #amarok
Abstraction library for sound and video support. Used by KDE notifications, Amarok, Dragon Player and Qt Software.
Brief explanation: Applications such as Amarok and Dragon Player cannot have an analyzer or visualizations since they use Phonon which does not yet have the functionality to do it. The analyzer is the little bar graph thing which bounces around while music is playing. Users like it as its pretty and gives them a visual indication of their music playing.
Expected results: As this project is working on extending a library, it has three parts: the Phonon library itself, a Phonon backend, and an application. The Phonon library would need the new API calls. At least phonon-xine and preferably 1 or 2 other Phonon backends must then implement the new API. An application like Amarok or Dragon Player should be used to demonstrate the use of the new API.
Knowledge Prerequisite: C++ and Qt. Experience with Xine or GStreamer is probably useful.
Mentor: Ian Monroe (contact on the Amarok mailing list) or possibly another Amarok or Phonon developer.
Real-time navigation support using OpenStreetMap data and Marble for display.
Project doesn't yet exist, could either be a separate application, or integrated into Marble, though integration seems to conflict with Marble's purpose as an educational application. ( Edit from tackat, Marble Project: There is no conflict at all. Marble's educational aspect is just one out of many. We'd really love to see somebody coming up with improvements in the area of geolocalisation, routing, etc.. In terms of UI there are several ideas already how to sort things out. We just need somebody who takes care of this)
Brief explanation: Satellite navigation devices have become widely used and the quality of openstreetmap data is becoming high, with some cities completely mapped already. Providing satellite navigation would be a useful desktop app for many as well as adding appeal for the use of KDE in embedded devices.
It also opens the possibility to bringing many of the free software ideals to interaction with the real world such as collaborative/social POIs.
Expected results: The project would aim at getting a basic satellite navigation application running. The most basic features required would be getting the current location from a GPS device and providing route calculation to a destination.
The AndNav project (http://andnav.org) has already achieved something similar for Android so it could be a point of reference for how to use OpenStreetMap data to achieve this.
Knowledge Prerequisite: C++ and Qt. Experience with GPS devices under linux would be beneficial. Knowing java may also be of benefit in order to study the AndNav implementation.
Mentor: I (Alan Jones, skyphyr using gmail) am willing to mentor, but not having any GPS or Marble experience there is most likely somebody far more suited to undertake this role.
Comment from a Marble Project guy: Alan, please get in touch with the Marble Project. Our mailing list is email@example.com. We'd like to support this project if a student is willing to do it.
KDE-based Integrated Development Environment, specializing in c++ support, but including a powerful generic framework (definition use chain) which makes it possible to relatively easily support multiple different languages.
Brief explanation: C++ support in KDevelop is already highly advanced, often equalling or surpassing what the user and compiler understand about the code. A few refactoring tools have been developed already, but they have been constructed in a crude fashion, generating code via string concatenation.
This project would aim to create a new system to implement refactoring tools, and to create, test and deploy several advanced refactoring tools for c++.
Expected results: A library would be created to enable refactoring based on the c++ AST (abstract syntax tree). A reverse parser (AST to code) already exists, but classes would be created to allow programatic manipulation of an AST. Optionally this library would also cover a generic framework based on the duchain which would be re-usable by other languages and make refactoring plugins easier to develop and partially shareable between languages.
See the Code Generation Design documents for the initial plan for this project.
Knowledge Prerequisite: C++ and Qt. Experience with parsers would be a bonus.
Mentor: Hamish Rodda (Definition-Use chain code creator) rodda at kde/dot/org, possibly also David Nolden (DUChain guru)(to be confirmed)