GSoC/2010/Ideas: Difference between revisions

From KDE Community Wiki
< GSoC‎ | 2010
No edit summary
Line 22: Line 22:
If you are not a developer but have a good idea for a proposal, get in contact with relevant developers first.
If you are not a developer but have a good idea for a proposal, get in contact with relevant developers first.


==Ideas==
== Ideas ==
===Amarok===


Amarok is a powerful KDE based music player for Linux and Unix, MacOS X and Windows with an intuitive interface. It makes playing the music you love and discovering new music easier than ever before - and it looks good doing it!
=== Amarok ===


Amarok is a powerful KDE based music player for Linux and Unix, MacOS X and Windows with an intuitive interface. It makes playing the music you love and discovering new music easier than ever before - and it looks good doing it!


[http://amarok.kde.org Website] - [https://mail.kde.org/mailman/listinfo/amarok Mailing list] - IRC channel: #amarok on Freenode.
<br> [http://amarok.kde.org Website] - [https://mail.kde.org/mailman/listinfo/amarok Mailing list] - IRC channel: #amarok on Freenode.  


====Project: On the Fly Transcoding ====
==== Project: 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:'''
'''Brief explanation:''' Allow media to be seamlessly transcoded to another format whenever it is copied from one collection to another.  
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:'''
'''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 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:'''
'''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.  
Nikolaj Hald Nielsen <nhn@kde.org> or another Amarok developer.


====Project: Distributed Collections====
'''Mentor:''' Nikolaj Hald Nielsen &lt;[email protected]&gt; or another Amarok developer.


'''Brief explanation:'''
==== Project: Distributed Collections  ====
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:'''
'''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.  
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:'''
'''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 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:'''
'''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.  
Nikolaj Hald Nielsen <nhn@kde.org> or another Amarok developer.


====Project: Amarok & KDE UPnP integration====
'''Mentor:''' Nikolaj Hald Nielsen &lt;[email protected]&gt; or another Amarok developer.  
'''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.
==== Project: Amarok &amp; KDE UPnP integration ====


'''Expected results:'''
'''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.  
* 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:'''
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.  
C++ and UPnP. KIO-slave or Amarok experience is recommended.
'''Mentor:'''
Bart Cerneels


===digiKam===
'''Expected results:'''


Photo Management program
*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.


[http://www.digikam.org digiKam project web site] - [https://mail.kde.org/mailman/listinfo/digikam-devel Mailinglist] - IRC channel: #digikam on Freenode.
'''Knowledge Prerequisite:''' C++ and UPnP. KIO-slave or Amarok experience is recommended.  


====Project: ====
'''Mentor:''' Bart Cerneels
'''Brief explanation:'''


'''Expected results:'''
=== digiKam  ===


'''Knowledge Prerequisite:'''
Photo Management program


'''Mentor:'''
[http://www.digikam.org digiKam project web site] - [https://mail.kde.org/mailman/listinfo/digikam-devel Mailinglist] - IRC channel: #digikam on Freenode.


==== Project:  ====


===KDE Edu===
'''Brief explanation:'''


Sabine Emmy Eller suggested the development of a “general conversion tool” for tables to various xml formats and from one xml to another xml format etc. where one can add further formats over time would be great.
'''Expected results:'''
If this is a good idea we can actually start to think about more detailed specifications for what we need.


====Project: ====
'''Knowledge Prerequisite:'''  
'''Brief explanation:'''


'''Expected results:'''
'''Mentor:'''  


'''Knowledge Prerequisite:'''
<br>


'''Mentor:'''
=== KDE Edu  ===


Sabine Emmy Eller suggested the development of a “general conversion tool” for tables to various xml formats and from one xml to another xml format etc. where one can add further formats over time would be great. If this is a good idea we can actually start to think about more detailed specifications for what we need.


===KDE Games===
==== Project:  ====


====Project: ====
'''Brief explanation:'''  
'''Brief explanation:'''


'''Expected results:'''
'''Expected results:'''  


'''Knowledge Prerequisite:'''
'''Knowledge Prerequisite:'''  


'''Mentor:'''
'''Mentor:'''  


<br>


===KDE libs===
=== KDE Games  ===


====Project: ====
==== Project: ====
'''Brief explanation:'''


'''Expected results:'''
'''Brief explanation:'''  


'''Knowledge Prerequisite:'''
'''Expected results:'''  


'''Mentor:'''
'''Knowledge Prerequisite:'''  


'''Mentor:'''


===KDevelop===
<br>
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.


[http://www.kdevelop.org Website] - [http://www.kdevelop.org/index.html?filename=mailinglist.html Mailing list] - IRC channel: #kdevelop on Freenode.
=== KDE libs  ===


====Project: ====
==== Project: ====
'''Brief explanation:'''


'''Expected results:'''
'''Brief explanation:'''  


'''Knowledge Prerequisite:'''
'''Expected results:'''  


'''Mentor:'''
'''Knowledge Prerequisite:'''  


===KDE PIM===
'''Mentor:'''
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 [http://www.akonadi-project.org/ Akonadi].
<br>


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


[http://pim.kde.org/ Website] - [http://techbase.kde.org/Projects/PIM Project Wiki] -  [https://mail.kde.org/mailman/listinfo/kde-pim Mailing list] - IRC channel: #kontact and #akonadi on Freenode.
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.  


For a list of ideas that are not yet fully spelled out, see [http://community.kde.org/KDE_PIM/Meetings/Osnabrueck_8#Summer_of_Code_brainstorming the brainstorming list of Summer of Code ideas of the last PIM meeting].
[http://www.kdevelop.org Website] - [http://www.kdevelop.org/index.html?filename=mailinglist.html Mailing list] - IRC channel: #kdevelop on Freenode.  


==== Project: New Kontact summary based on Plasma ====
==== Project: ====
'''Brief explanation:''' Create a new summary for Kontact that is based on Plasma.


'''Expected results:''' The new Kontact summary should be based on Plasma and have every feature that the old summary had. The summary should look nice and have lots of bling. It should be possible to place single components of the summary on the desktop as well, as plasmoids.
'''Brief explanation:'''  


'''Knowledge Prerequisite:''' C++ and Qt knowledge is needed, Plasma experience would be welcome.
'''Expected results:'''  


'''Mentor:'''
'''Knowledge Prerequisite:'''  


==== Project: Improved HTML support for KMail's composer ====
'''Mentor:'''


'''Brief explanation:''' The HTML support for KMail's composer is currently limited. This should be improved: Replying and forwarding should (optionally) preserve the HTML format. The composer should use WebKit editing so that all HTML is fully supported.
=== KDE PIM  ===


'''Expected results:''' Replying and forwarding HTML mails should be fully supported. The QTextEdit-based widget in the composer should be replaced by a WebKit-based widget, to support all HTML instead of a small subset.
KDE PIM is the interest group working on applications related to personal information management, e.g. contacts, calendar, mails, etc.  


'''Knowledge Prerequisite:''' C++ and Qt
One of the current challenges is utilizing the new cross-desktop PIM infrastructure called [http://www.akonadi-project.org/ Akonadi].


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


==== Project: Improved theming support for the message viewer ====
[http://pim.kde.org/ Website] - [http://techbase.kde.org/Projects/PIM Project Wiki] - [https://mail.kde.org/mailman/listinfo/kde-pim Mailing list] - IRC channel: #kontact and #akonadi on Freenode.  
'''Brief explanation:''' In KMail, it is currently possible to chose between different header styles, such as 'fancy' or 'brief'. These header styles currently have to be written in C++.


The goal of this project is to use the [http://www.gitorious.org/grantlee/pages/Home Grantlee library] to provide better and easier theming support.
For a list of ideas that are not yet fully spelled out, see [http://community.kde.org/KDE_PIM/Meetings/Osnabrueck_8#Summer_of_Code_brainstorming the brainstorming list of Summer of Code ideas of the last PIM meeting].  


'''Expected results:''' The viewers of KMail, KNode and Akregator should all be ported to Grantlee. Some defaults themes should be provided, at least replacing the existing 'fancy' and 'standard' themes.
==== Project: New Kontact summary based on Plasma  ====


Optionally, [http://techbase.kde.org/Development/Tutorials/Introduction_to_Get_Hot_New_Stuff Get Hot New Stuff] should be used so that the user can easily download new themes.
'''Brief explanation:''' Create a new summary for Kontact that is based on Plasma.  


Optionally, the user should have some sort of control over which header fields of the mail are displayed, see [http://bugs.kde.org/show_bug.cgi?id=16270 Wish 16270].
'''Expected results:''' The new Kontact summary should be based on Plasma and have every feature that the old summary had. The summary should look nice and have lots of bling. It should be possible to place single components of the summary on the desktop as well, as plasmoids.  


'''Knowledge Prerequisite:''' C++ and Qt
'''Knowledge Prerequisite:''' C++ and Qt knowledge is needed, Plasma experience would be welcome.


'''Mentor:''' Thomas McGuire, Stephan Kelly(?)
'''Mentor:'''  


==== Project: Improved HTML support for KMail's composer  ====


==== Project: Easy Import and Export of all PIM data in Kontact ====
'''Brief explanation:''' The HTML support for KMail's composer is currently limited. This should be improved: Replying and forwarding should (optionally) preserve the HTML format. The composer should use WebKit editing so that all HTML is fully supported.  
'''Brief explanation:''' There should be an easy way to import and export all PIM data including the configuration data, to make it easy to exchange data and to move the Kontact data to another installation.


'''Expected results:''' There should be a central way in Kontact to import and export all data. Right now, some individual applications have their own ways to import and export data, and this should be unified.
'''Expected results:''' Replying and forwarding HTML mails should be fully supported. The QTextEdit-based widget in the composer should be replaced by a WebKit-based widget, to support all HTML instead of a small subset.
The new import and export tool should be able to deal with the following
* Configuration data, such as applications settings and account settings
* The actual data, such as mails, feeds, contacts and calendar entries
* Metadata, such as Nepomuk tags and annotations or Akonadi item flags
* Cached data, such as the cache of an IMAP account, to avoid re-downloading the mails


It should be possible for the user to have a fine-grained selection of the above so that the user can decide what to export or import.
'''Knowledge Prerequisite:''' C++ and Qt


Ideally, it should be possible to export all this to a single archive file which can be later re-imported.
'''Mentor:''' Thomas McGuire


There are several bug reports on [bugs.kde.org the KDE bugtracker] that request something like this, you might get additional ideas from them.
==== Project: Improved theming support for the message viewer  ====


'''Knowledge Prerequisite:''' C++ and Qt
'''Brief explanation:''' In KMail, it is currently possible to chose between different header styles, such as 'fancy' or 'brief'. These header styles currently have to be written in C++.


'''Mentor:'''
The goal of this project is to use the [http://www.gitorious.org/grantlee/pages/Home Grantlee library] to provide better and easier theming support.


==== Project: Unified account wizard for Kontact ====
'''Expected results:''' The viewers of KMail, KNode and Akregator should all be ported to Grantlee. Some defaults themes should be provided, at least replacing the existing 'fancy' and 'standard' themes.  
'''Brief explanation: ''' Provide a nice wizard that can set up all of Kontact in one go and is easily extensible to support new configuration templates.
The wizard should set up accounts/resources for all Kontact components.


As an example, let's say the user has a Google account: That includes Google Mail, Google Calendar, Google Contacts and Google Reader. The wizard should only ask for the username and password of the Google account of the user, and then set up Akonadi resources for mail, calendar, contacts and feeds automatically.
Optionally, [http://techbase.kde.org/Development/Tutorials/Introduction_to_Get_Hot_New_Stuff Get Hot New Stuff] should be used so that the user can easily download new themes.  


This should of course not be limited to Google: The system should be based on configuration templates so that many popular providers can be supported. Writing such configuration templates should require no coding so that many people write them, leading to a broader support of providers in the wizard
Optionally, the user should have some sort of control over which header fields of the mail are displayed, see [http://bugs.kde.org/show_bug.cgi?id=16270 Wish 16270].  


'''Expected results:'''
'''Knowledge Prerequisite:''' C++ and Qt
* Write and integrate a usable wizard for Kontact that combines setting up accounts/resources for mail, calendar, contacts and maybe more.
* Make it easy to use: The user should only need to input the bare minimum of information, and the wizard auto-detects all the correct settings, based on configuration templates
* Provide as many sample configuration templates for popular services as possible, for example for Google, AOL and other popular providers
* Optionally, integrate [http://techbase.kde.org/Development/Tutorials/Introduction_to_Get_Hot_New_Stuff Get Hot New Stuff] so that it is possible to download new configuration templates.


'''Knowledge Prerequisite:''' C++ and Qt
'''Mentor:''' Thomas McGuire, Stephan Kelly(?)


'''Mentor:'''
<br>


==== Project: Personalized email addresses for each contact ====
==== Project: Easy Import and Export of all PIM data in Kontact  ====
'''Brief explanation:'''Facilitate usage of a different email address for each contact.


'''Expected results:''' For instance, if the user owns the domain mickeymouse.com then when he is communicating with [email protected] he would use the personalized address [email protected], and when he is communicating with [email protected] he would use the address [email protected]. The Thunderbird email client supports this with the Virtual Identity extension. See bugs https://bugs.kde.org/show_bug.cgi?id=72926 and https://bugs.kde.org/show_bug.cgi?id=159251
'''Brief explanation:''' There should be an easy way to import and export all PIM data including the configuration data, to make it easy to exchange data and to move the Kontact data to another installation.  


'''Knowledge Prerequisite:'''
'''Expected results:''' There should be a central way in Kontact to import and export all data. Right now, some individual applications have their own ways to import and export data, and this should be unified. The new import and export tool should be able to deal with the following


'''Mentor:'''
*Configuration data, such as applications settings and account settings
*The actual data, such as mails, feeds, contacts and calendar entries
*Metadata, such as Nepomuk tags and annotations or Akonadi item flags
*Cached data, such as the cache of an IMAP account, to avoid re-downloading the mails


==== Project: ====
It should be possible for the user to have a fine-grained selection of the above so that the user can decide what to export or import.
'''Brief explanation:'''


'''Expected results:'''
Ideally, it should be possible to export all this to a single archive file which can be later re-imported.


'''Knowledge Prerequisite:'''
There are several bug reports on [bugs.kde.org the KDE bugtracker] that request something like this, you might get additional ideas from them.


'''Mentor:'''
'''Knowledge Prerequisite:''' C++ and Qt


'''Mentor:'''


=== KOffice ===
==== Project: Unified account wizard for Kontact  ====


====KSpread: Improve saving to ODF ====
'''Brief explanation: ''' Provide a nice wizard that can set up all of Kontact in one go and is easily extensible to support new configuration templates. The wizard should set up accounts/resources for all Kontact components.  
'''Brief explanation:''' ODF is the native fileformat of KSpread. As such one of the most important aspects of KSpread is to be able to load and save OpenDocument Spreadsheet files (ODS). While we are working hard on improving the support for loading, saving is not that well tested yet. The goal would be to change that, to improve the saving to ODF as much as possible. This should be done by adding unittests for loading and saving of ODF documents and fixing bugs where they show up.


First step would be to test different cases and to identify problems. As a starting point a look on the work done on the [http://wiki.koffice.org/index.php?title=Schedules Schedules], the [http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office Specs] and the [http://websvn.kde.org/trunk/koffice/kspread Code] may help.
As an example, let's say the user has a Google account: That includes Google Mail, Google Calendar, Google Contacts and Google Reader. The wizard should only ask for the username and password of the Google account of the user, and then set up Akonadi resources for mail, calendar, contacts and feeds automatically.  


'''Expected results:''' Loading, saving and reopening a document should introduce as less unwanted changes as possible. Saving should work as good as loading does already.
This should of course not be limited to Google: The system should be based on configuration templates so that many popular providers can be supported. Writing such configuration templates should require no coding so that many people write them, leading to a broader support of providers in the wizard


'''Knowledge Prerequisite:''' ODF specs, Qt-knowledge, being able to understand complex code.
'''Expected results:'''  


'''Mentor:''' Sebastian Sauer
*Write and integrate a usable wizard for Kontact that combines setting up accounts/resources for mail, calendar, contacts and maybe more.
*Make it easy to use: The user should only need to input the bare minimum of information, and the wizard auto-detects all the correct settings, based on configuration templates
*Provide as many sample configuration templates for popular services as possible, for example for Google, AOL and other popular providers
*Optionally, integrate [http://techbase.kde.org/Development/Tutorials/Introduction_to_Get_Hot_New_Stuff Get Hot New Stuff] so that it is possible to download new configuration templates.


===Kopete===
'''Knowledge Prerequisite:''' C++ and Qt
http://kopete.kde.org


====Project: ====
'''Mentor:'''  
'''Brief explanation:'''


'''Expected results:'''
==== Project: Personalized email addresses for each contact  ====


'''Knowledge Prerequisite:'''
'''Brief explanation:'''Facilitate usage of a different email address for each contact.


'''Mentor:'''
'''Expected results:''' For instance, if the user owns the domain mickeymouse.com then when he is communicating with [email protected] he would use the personalized address [email protected], and when he is communicating with [email protected] he would use the address [email protected]. The Thunderbird email client supports this with the Virtual Identity extension. See bugs https://bugs.kde.org/show_bug.cgi?id=72926 and https://bugs.kde.org/show_bug.cgi?id=159251


===KDE on Windows===
'''Knowledge Prerequisite:'''


====Project: ====
'''Mentor:'''  
'''Brief explanation:'''


'''Expected results:'''
==== Project:Kmail filter on Thread<br>  ====


'''Knowledge Prerequisite:'''
'''Brief explanation: '''Facility in Kmail filter to move messages to folders based on thread


'''Mentor:'''
'''Expected results: '''User can define filters based on the "Reply-to:" message-id of a new message (message A) matching the message-id of an existing message in an existing mail folder (message B).&nbsp; On match, option to move Message A to the folder that contains Message B.&nbsp; This will help in continuing threads in the same folder in which they were started.<br>


===KDE on Mac OS X===
Mail me if the problem statement or the requirement for this feature is not clear enough.


====Project: ====
'''Knowledge Prerequisite: '''Presumably, knowledge of KMail, understanding of the e-mail message RFC, C++.<br>
'''Brief explanation:'''


'''Expected results:'''
'''Mentor:''' Whoever's interested and thinks this is a good idea.


'''Knowledge Prerequisite:'''
<br>


'''Mentor:'''
=== KOffice  ===


===KWin===
==== KSpread: Improve saving to ODF  ====


KDE's window manager
'''Brief explanation:''' ODF is the native fileformat of KSpread. As such one of the most important aspects of KSpread is to be able to load and save OpenDocument Spreadsheet files (ODS). While we are working hard on improving the support for loading, saving is not that well tested yet. The goal would be to change that, to improve the saving to ODF as much as possible. This should be done by adding unittests for loading and saving of ODF documents and fixing bugs where they show up.


[http://techbase.kde.org/Projects/KWin Techbase page] - [https://mail.kde.org/mailman/listinfo/kwin Mailinglist] - IRC channel: #kwin on Freenode.
First step would be to test different cases and to identify problems. As a starting point a look on the work done on the [http://wiki.koffice.org/index.php?title=Schedules Schedules], the [http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office Specs] and the [http://websvn.kde.org/trunk/koffice/kspread Code] may help.  


====Project: ====
'''Expected results:''' Loading, saving and reopening a document should introduce as less unwanted changes as possible. Saving should work as good as loading does already.
'''Brief explanation:'''


'''Expected results:'''
'''Knowledge Prerequisite:''' ODF specs, Qt-knowledge, being able to understand complex code.


'''Knowledge Prerequisite:'''
'''Mentor:''' Sebastian Sauer


'''Mentor:'''
=== Kopete  ===


===Nepomuk===
http://kopete.kde.org  
[http://nepomuk.kde.org Website]- [http://techbase.kde.org/Development/Tutorials#Nepomuk Documentation/Howtos] - [http://www.semanticdesktop.org/ontologies/ Ontologies] - [http://lists.semanticdesktop.org/mailman/listinfo/nepomuk-kde Mailing list] - IRC channel: #nepomuk-kde on Freenode.


====Project: ====
==== Project: ====
'''Brief explanation:'''


'''Expected results:'''
'''Brief explanation:'''  


'''Knowledge Prerequisite:'''
'''Expected results:'''  


'''Mentor:'''
'''Knowledge Prerequisite:'''  


===Okular===
'''Mentor:'''
[http://okular.kde.org/ Okular] is KDE's document viewer. It is often used for PDF documents, but can handle many other document types.


====Project: ====
=== KDE on Windows  ===
'''Brief explanation:'''


'''Expected results:'''
==== Project: ====


'''Knowledge Prerequisite:'''
'''Brief explanation:'''  


'''Mentor:'''
'''Expected results:'''  


'''Knowledge Prerequisite:'''


===Plasma===
'''Mentor:'''
[http://plasma.kde.org Website] - [https://mail.kde.org/mailman/listinfo/panel-dev Mailing list] - IRC channel: #plasma on Freenode.


=== KDE on Mac OS X  ===


====Project: ====
==== Project: ====
'''Brief explanation:'''


'''Expected results:'''
'''Brief explanation:'''  


'''Knowledge prerequisite:'''
'''Expected results:'''  


'''Mentor:'''
'''Knowledge Prerequisite:'''  


'''Mentor:'''


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


[http://phonon.kde.org Website] - [https://mail.kde.org/mailman/listinfo/phonon-backends Mailing list] - IRC channel: #phonon on Freenode.
KDE's window manager


====Project: ====
[http://techbase.kde.org/Projects/KWin Techbase page] - [https://mail.kde.org/mailman/listinfo/kwin Mailinglist] - IRC channel: #kwin on Freenode.
'''Brief explanation:'''


'''Expected results:'''
==== Project: ====


'''Knowledge Prerequisite:'''
'''Brief explanation:'''  


'''Mentor:'''
'''Expected results:'''  


=== KDE Finance ===
'''Knowledge Prerequisite:'''
KDE Finance is an emerging group of applications dedicated to financial topics, such as Personal Finances Management, Invoices Management, Point of Sales...


==== Plasma Dashboard in Skrooge ====
'''Mentor:'''
[http://skrooge.org Skrooge] is a Personal Finances Manager, a part of [http://extragear.kde.org KDE extragear].


'''Brief explanation:'''
=== Nepomuk  ===
Skrooge currently has a module called Dashboard that contains several widgets showing various information about your financial situation. However we are reinventing the plasma wheel in many areas, so we'd like to switch it to plasma.
The dashboard could become a generic componenet that would also be used by other applications (kontact ?)


'''Expected results:'''
[http://nepomuk.kde.org Website]- [http://techbase.kde.org/Development/Tutorials#Nepomuk Documentation/Howtos] - [http://www.semanticdesktop.org/ontologies/ Ontologies] - [http://lists.semanticdesktop.org/mailman/listinfo/nepomuk-kde Mailing list] - IRC channel: #nepomuk-kde on Freenode.  
* implement a newspaper view that will receive skroogoids.
* write a dataengine providing data from the current skrooge file (which is in fact an SQLite database).
* create some skroogoids that should be displayed in the newspaper view. Ability to display them on the desktop, without skrooge being opened is something to be discussed (a skrooge file may be password protected using QCA, no idea how this could be handled).
* save the dashboard config inside the Skrooge file (currently not supported by plasma, IIRC)


'''Knowledge Prerequisite:'''
==== Project: ====
C++, SQLite, optionnally a scripting language supported by plasma


'''Mentor:'''
'''Brief explanation:'''
[mailto:[email protected] Guillaume DE BURE], + someone from plasma team (?)
 
'''Expected results:'''
 
'''Knowledge Prerequisite:'''
 
'''Mentor:'''
 
=== Okular  ===
 
[http://okular.kde.org/ 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:'''  
 
<br>
 
=== Plasma  ===
 
[http://plasma.kde.org Website] - [https://mail.kde.org/mailman/listinfo/panel-dev Mailing list] - IRC channel: #plasma on Freenode.
 
<br>
 
==== Project:  ====
 
'''Brief explanation:'''
 
'''Expected results:'''
 
'''Knowledge prerequisite:'''
 
'''Mentor:'''
 
<br>
 
=== Phonon  ===
 
Abstraction library for sound and video support. Used by KDE notifications, Amarok, Dragon Player and Qt Software.
 
[http://phonon.kde.org Website] - [https://mail.kde.org/mailman/listinfo/phonon-backends Mailing list] - IRC channel: #phonon on Freenode.
 
==== Project:  ====
 
'''Brief explanation:'''
 
'''Expected results:'''
 
'''Knowledge Prerequisite:'''
 
'''Mentor:'''
 
=== KDE Finance  ===
 
KDE Finance is an emerging group of applications dedicated to financial topics, such as Personal Finances Management, Invoices Management, Point of Sales...
 
==== Plasma Dashboard in Skrooge  ====
 
[http://skrooge.org Skrooge] is a Personal Finances Manager, a part of [http://extragear.kde.org KDE extragear].
 
'''Brief explanation:''' Skrooge currently has a module called Dashboard that contains several widgets showing various information about your financial situation. However we are reinventing the plasma wheel in many areas, so we'd like to switch it to plasma. The dashboard could become a generic componenet that would also be used by other applications (kontact&nbsp;?)
 
'''Expected results:'''
 
*implement a newspaper view that will receive skroogoids.
*write a dataengine providing data from the current skrooge file (which is in fact an SQLite database).
*create some skroogoids that should be displayed in the newspaper view. Ability to display them on the desktop, without skrooge being opened is something to be discussed (a skrooge file may be password protected using QCA, no idea how this could be handled).
*save the dashboard config inside the Skrooge file (currently not supported by plasma, IIRC)
 
'''Knowledge Prerequisite:''' C++, SQLite, optionnally a scripting language supported by plasma
 
'''Mentor:''' [mailto:[email protected] Guillaume DE BURE], + someone from plasma team (?)

Revision as of 15:40, 10 February 2010

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

Amarok is a powerful KDE based music player for Linux and Unix, MacOS X and Windows with an intuitive interface. It makes playing the music you love and discovering new music easier than ever before - and it looks good doing it!


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

Project: 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.

Project: 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

Sabine Emmy Eller suggested the development of a “general conversion tool” for tables to various xml formats and from one xml to another xml format etc. where one can add further formats over time would be great. If this is a good idea we can actually start to think about more detailed specifications for what we need.

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.

For a list of ideas that are not yet fully spelled out, see the brainstorming list of Summer of Code ideas of the last PIM meeting.

Project: New Kontact summary based on Plasma

Brief explanation: Create a new summary for Kontact that is based on Plasma.

Expected results: The new Kontact summary should be based on Plasma and have every feature that the old summary had. The summary should look nice and have lots of bling. It should be possible to place single components of the summary on the desktop as well, as plasmoids.

Knowledge Prerequisite: C++ and Qt knowledge is needed, Plasma experience would be welcome.

Mentor:

Project: Improved HTML support for KMail's composer

Brief explanation: The HTML support for KMail's composer is currently limited. This should be improved: Replying and forwarding should (optionally) preserve the HTML format. The composer should use WebKit editing so that all HTML is fully supported.

Expected results: Replying and forwarding HTML mails should be fully supported. The QTextEdit-based widget in the composer should be replaced by a WebKit-based widget, to support all HTML instead of a small subset.

Knowledge Prerequisite: C++ and Qt

Mentor: Thomas McGuire

Project: Improved theming support for the message viewer

Brief explanation: In KMail, it is currently possible to chose between different header styles, such as 'fancy' or 'brief'. These header styles currently have to be written in C++.

The goal of this project is to use the Grantlee library to provide better and easier theming support.

Expected results: The viewers of KMail, KNode and Akregator should all be ported to Grantlee. Some defaults themes should be provided, at least replacing the existing 'fancy' and 'standard' themes.

Optionally, Get Hot New Stuff should be used so that the user can easily download new themes.

Optionally, the user should have some sort of control over which header fields of the mail are displayed, see Wish 16270.

Knowledge Prerequisite: C++ and Qt

Mentor: Thomas McGuire, Stephan Kelly(?)


Project: Easy Import and Export of all PIM data in Kontact

Brief explanation: There should be an easy way to import and export all PIM data including the configuration data, to make it easy to exchange data and to move the Kontact data to another installation.

Expected results: There should be a central way in Kontact to import and export all data. Right now, some individual applications have their own ways to import and export data, and this should be unified. The new import and export tool should be able to deal with the following

  • Configuration data, such as applications settings and account settings
  • The actual data, such as mails, feeds, contacts and calendar entries
  • Metadata, such as Nepomuk tags and annotations or Akonadi item flags
  • Cached data, such as the cache of an IMAP account, to avoid re-downloading the mails

It should be possible for the user to have a fine-grained selection of the above so that the user can decide what to export or import.

Ideally, it should be possible to export all this to a single archive file which can be later re-imported.

There are several bug reports on [bugs.kde.org the KDE bugtracker] that request something like this, you might get additional ideas from them.

Knowledge Prerequisite: C++ and Qt

Mentor:

Project: Unified account wizard for Kontact

Brief explanation: Provide a nice wizard that can set up all of Kontact in one go and is easily extensible to support new configuration templates. The wizard should set up accounts/resources for all Kontact components.

As an example, let's say the user has a Google account: That includes Google Mail, Google Calendar, Google Contacts and Google Reader. The wizard should only ask for the username and password of the Google account of the user, and then set up Akonadi resources for mail, calendar, contacts and feeds automatically.

This should of course not be limited to Google: The system should be based on configuration templates so that many popular providers can be supported. Writing such configuration templates should require no coding so that many people write them, leading to a broader support of providers in the wizard

Expected results:

  • Write and integrate a usable wizard for Kontact that combines setting up accounts/resources for mail, calendar, contacts and maybe more.
  • Make it easy to use: The user should only need to input the bare minimum of information, and the wizard auto-detects all the correct settings, based on configuration templates
  • Provide as many sample configuration templates for popular services as possible, for example for Google, AOL and other popular providers
  • Optionally, integrate Get Hot New Stuff so that it is possible to download new configuration templates.

Knowledge Prerequisite: C++ and Qt

Mentor:

Project: Personalized email addresses for each contact

Brief explanation:Facilitate usage of a different email address for each contact.

Expected results: For instance, if the user owns the domain mickeymouse.com then when he is communicating with [email protected] he would use the personalized address [email protected], and when he is communicating with [email protected] he would use the address [email protected]. The Thunderbird email client supports this with the Virtual Identity extension. See bugs https://bugs.kde.org/show_bug.cgi?id=72926 and https://bugs.kde.org/show_bug.cgi?id=159251

Knowledge Prerequisite:

Mentor:

Project:Kmail filter on Thread

Brief explanation: Facility in Kmail filter to move messages to folders based on thread

Expected results: User can define filters based on the "Reply-to:" message-id of a new message (message A) matching the message-id of an existing message in an existing mail folder (message B).  On match, option to move Message A to the folder that contains Message B.  This will help in continuing threads in the same folder in which they were started.

Mail me if the problem statement or the requirement for this feature is not clear enough.

Knowledge Prerequisite: Presumably, knowledge of KMail, understanding of the e-mail message RFC, C++.

Mentor: Whoever's interested and thinks this is a good idea.


KOffice

KSpread: Improve saving to ODF

Brief explanation: ODF is the native fileformat of KSpread. As such one of the most important aspects of KSpread is to be able to load and save OpenDocument Spreadsheet files (ODS). While we are working hard on improving the support for loading, saving is not that well tested yet. The goal would be to change that, to improve the saving to ODF as much as possible. This should be done by adding unittests for loading and saving of ODF documents and fixing bugs where they show up.

First step would be to test different cases and to identify problems. As a starting point a look on the work done on the Schedules, the Specs and the Code may help.

Expected results: Loading, saving and reopening a document should introduce as less unwanted changes as possible. Saving should work as good as loading does already.

Knowledge Prerequisite: ODF specs, Qt-knowledge, being able to understand complex code.

Mentor: Sebastian Sauer

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:

KDE Finance

KDE Finance is an emerging group of applications dedicated to financial topics, such as Personal Finances Management, Invoices Management, Point of Sales...

Plasma Dashboard in Skrooge

Skrooge is a Personal Finances Manager, a part of KDE extragear.

Brief explanation: Skrooge currently has a module called Dashboard that contains several widgets showing various information about your financial situation. However we are reinventing the plasma wheel in many areas, so we'd like to switch it to plasma. The dashboard could become a generic componenet that would also be used by other applications (kontact ?)

Expected results:

  • implement a newspaper view that will receive skroogoids.
  • write a dataengine providing data from the current skrooge file (which is in fact an SQLite database).
  • create some skroogoids that should be displayed in the newspaper view. Ability to display them on the desktop, without skrooge being opened is something to be discussed (a skrooge file may be password protected using QCA, no idea how this could be handled).
  • save the dashboard config inside the Skrooge file (currently not supported by plasma, IIRC)

Knowledge Prerequisite: C++, SQLite, optionnally a scripting language supported by plasma

Mentor: Guillaume DE BURE, + someone from plasma team (?)