Projects/Summer of Code/2007/Ideas

From KDE TechBase

This page is an open list for ideas for the 2007 edition of Google Summer of Code. It will remain editable while the submission process is open.

This list is not exhaustive. It is just a collection of some ideas.

Before proceeding, please read the participation instructions. They are useful for students and developers alike.

Notes on editing this page

Please respect the distinction between sponsored ideas and non-sponsored ones: sponsored ideas are those for which a KDE mentor has stepped up. Do not change the ideas listed in that section of the page. If you have an idea but you don't want to be a mentor, add it to the non-sponsored idea list.

When making modifications to existing ideas, please consider whether you're changing it more fundamentally or just superficially. If your changes are substantial, you probably have an entirely new idea. Similarly, if your idea is modified and you feel it no longer reflects your original thought, please split the idea in two, restoring yours.

Please use the talk page if you want to discuss an idea.

Finally, do not delete ideas without a reason for doing so (like, for instance, being contrary to KDE ideals, being completely unrelated to KDE, being unfeasible, etc.) -- you may want to state in the talk page why you removed the idea.

Do not re-add ideas that were removed without discussing first with the developers of the target application.

Past ideas

You may want to take a look at the ideas page for 2006. Some of the ideas there are still valid today.

Project ideas with mentors (sponsored ideas)

These ideas were added by KDE developers willing to be mentors. You can contact the mentors listed for more information or clarification, if needed. You need not submit the exact proposal listed here — feel free to use it as inspiration. Even if you do change the proposal, you may contact the mentors to get their input.

For mentors: when adding an idea to this section, please include:

  • 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

KDE Libs

Solid

Phonon

KHTML

Sonnet

Kross

KDE Base applications

Konqueror - web browser

Konqueror & Dolphin - file manager

Plasma

KWin

KOffice

KDE Edu

MARBLE - Adding a 2D View

Project Information: Marble is Qt 4-based a generic virtual globe widget which is meant to integrate well with the KDE desktop to provide basic input and visualisation facilities for geographical data. Marble currently lives in http://websvn.kde.org/trunk/playground/base/marble/ and the author would like to see Marble be included with KDE-Edu soon. More information: the Marble description.

Brief explanation: To be properly integrated with other applications a 2D View for Marble will be needed in addition to the preferred 3D View (e.g. for merging functionality of KGeography and Marble). Three steps are suggested:

  1. reuse the current rendering engine in 2D mode
  2. write an optimized approach for the 2D case and thereby refactor parts of Marble (especially the texture mapping)
  3. include adding proper access methods for applications and the user interface

Depending on the knowledge of the applicant the refactoring part can be extended.

Expected results: adding the 2D View Mode to Marble. Optionally, if enough time is available, integrate that view mode in another application like KGeography.

Knowledge Pre-Requisite: basic knowledge of C++ is a pre-requirement. Other useful skills, but not mandatory are:

  • Qt experience

Mentor: Torsten Rahn <[email protected]>.

Mailing list: The kde-edu mailing list: http://lists.kde.org/?l=kde-edu&r=1&b=200702&w=2 .

KDE PIM libraries and applications

KPilot - Enhance Record based syncing

Project Information: KPilot is the KDE application to synchronize a device which runs palm-os with various KDE applications such as KMail, KAddressbook and Calendar. KPilot makes use of the pilot-link library to handle the interaction between the device and the conduits. These conduits are plugins which handle the actual synchronization of the items. For more information see [1]

Brief explanation: Currently all implemented conduits that are record-based. This means that for one program there are several items on the pilot, like addressess in the addressbook. But the current conduit framework doesn't tell the conduit developer very much about how to sync. The “only” thing a conduit developer has to is to subclass the SyncAction class and implement the exec() method to do the actual syncing. This means that each conduit which is record based has is own way to handle the various stages for syncing records:

  1. Pc to handheld
  2. Handheld to pc
  3. fullsync

Herefore it's a tedious job to maintain the conduits. For every conduit the maintainer has to learn how the actual syncing is done. Also a couple of conduits actually don't sync correctly because of a incomplete implementation of handling records.

Expected results: The student will create an improved framework for recordbased conduits and (re)implement a (new) conduit as a prove of concept.

  1. Documentation about the syncing process of a record based conduit.
    1. Sequence diagram
    2. Class diagram
  2. Implementation of the abstract record based conduit in the KPilot library.
  3. (Re)implementation of a (new) Conduit as proof of concept.

Knowledge Pre-Requisite: basic knowledge of C++ is a pre-requirement. Other useful skills, but not mandatory are:

  • Qt experience
  • pilot-link experience

Mentor: Adriaan de Groot <[email protected]>.

Mentor: Jason vanRijn <[email protected]>.

Mailing list: The kde-pim mailing list: http://lists.kde.org/?l=kde-pim&r=1&w=2.

KDevelop & Quanta

Kopete

Amarok

Oxygen

Usability

Project ideas currently without mentors (non-sponsored ideas)

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.

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.

These ideas don't have a "default" mentor yet. But, if chosen, we will assign one to you.

Feel free to contribute more ideas as well.

KOffice

A list of KOffice ideas without mentors can be found at the KOffice wiki.