GSoC/2010/Ideas

From KDE Community Wiki

Guidelines

Information for Students

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 [email protected]. See the KDE mailing lists page for information on available mailing lists and how to subscribe.

Adding a Proposal

When adding an idea to this section, please try to include the following data:

  • if the application is not widely known, a description of what it does and where its code lives
  • a brief explanation
  • the expected results
  • pre-requisites for working on your project
  • if applicable, links to more information or discussions
  • mailing list or IRC channel for your application/library/module
  • your name and email address for contact (if you're willing to be a mentor)

If you are not a developer but have a good idea for a proposal, get in contact with relevant developers first.

Ideas

Amarok

A KDE music manager and player.

Website - Mailing list - IRC channel: #amarok on Freenode.

On the Fly Transcoding:

Brief explanation: Allow media to be seamlessly transcoded to another format whenever it is copied from one collection to another.

Expected results: Amaroks concept of collections allows media to be easily moved and copied around. In many cases however, the format you want in one collection is not the same as you might want it to be in when copying it to another collection. A common example is having your entire local collection in lossless FLAC, but wanting to copy songs to a mobile device that only supports mp3 (or even if the device supports open formats, you might want to transcode it to ogg to save space). On completion of this project, an option to enable transcodeing should be integrated into the "Move/Copy to collection" flow in a way that it is available whenever this is used between 2 collections. A big part of this project will be to determine the most suited library or application to use as the backend of the transcoding engine.

Knowledge Prerequisite: Knowledge of C++ and Qt is a requirement. Knowledge of media formats and the different available apps and libraries for transcoding them is a bug plus.

Mentor: Nikolaj Hald Nielsen <[email protected]> or another Amarok developer.

Distributed Collections:

Brief explanation: Allow several instances of Amarok on a network, each with their own distinct local collection, to seamlessly search, browse music from each other.

Expected results: On completion of the project, it should be possible to allow other instances of Amarok to access your local collection, as well as have access to the collection of other instances of Amarok, if their users allow it. A protocol for searching, browsing and streaming music should be in place, either developed from scratch or based on an existing standard (if a suitable one can be found). Issues such as authentication and auto discovery must be considered and a solution found.

Knowledge Prerequisite: Knowledge of C++ and Qt is required. Knowledge of XML, JSON or other data exchange schemes will be a big benefit, As there are many open question in this project, the student is also required to be capable of independently coming up with ideas for solutions to many issues, so a high degree of creativity and independence is required.

Mentor: Nikolaj Hald Nielsen <[email protected]> or another Amarok developer.


Project: Amarok & KDE UPnP integration

Brief explanation: UPnP is a network auto-discovery and services protocol that among other things allows serving media to connected devices in the local network.

By creating a UPnP KIO slave and supporting infrastructure it becomes possible to access this media directly from any KDE application. In Amarok some extra integration is needed to make the UPnP MediaServer a full Collection. This includes indexing the contents locally when the server has no, or limited support for search.

Expected results:

  • A UPnP KIO slave based on an already existing or in development framework for UPnP.
  • An Amarok Collection implementation including a functional QueryMaker using UPnP-search or MemoryQueryMaker.
  • Optionally a PlaylistProvider implementation for UPnP-native playlists and playlist files found on the server.

Knowledge Prerequisite: C++ and UPnP. KIO-slave or Amarok experience is recommended.

Mentor: Bart Cerneels

digiKam

Photo Management program

digiKam project web site - Mailinglist - IRC channel: #digikam on Freenode.

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:


KDE Edu

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:


KDE Games

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:


KDE libs

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:


KDevelop

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.

Website - Mailing list - IRC channel: #kdevelop on Freenode.

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

KDE PIM

KDE PIM is the interest group working on applications related to personal information management, e.g. contacts, calendar, mails, etc.

One of the current challenges is utilizing the new cross-desktop PIM infrastructure called Akonadi.

There are interesting projects on all levels of the software stack: libraries, application porting, new applications, access to online resources, etc.

Website - Project Wiki - Mailing list - IRC channel: #kontact and #akonadi on Freenode.

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:


KOffice

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

Kopete

http://kopete.kde.org

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

KDE on Windows

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

KDE on Mac OS X

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

KWin

KDE's window manager

Techbase page - Mailinglist - IRC channel: #kwin on Freenode.

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

Nepomuk

Website- Documentation/Howtos - Ontologies - Mailing list - IRC channel: #nepomuk-kde on Freenode.

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

Okular

Okular is KDE's document viewer. It is often used for PDF documents, but can handle many other document types.

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:


Plasma

Website - Mailing list - IRC channel: #plasma on Freenode.


Project:

Brief explanation:

Expected results:

Knowledge prerequisite:

Mentor:


Phonon

Abstraction library for sound and video support. Used by KDE notifications, Amarok, Dragon Player and Qt Software.

Website - Mailing list - IRC channel: #phonon on Freenode.

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor: