[Decibel] Decibel Summer of Code Proposal
George Goldberg
grundleborg at googlemail.com
Mon Mar 17 05:12:28 CET 2008
Hi all,
Here is my summer of code proposal for decibel. I would very much
appreciate any feedback on it.
Thanks
George Goldberg
Summer of Code 2008 Proposal
Integration of Decibel into KDE
George Goldberg <grundleborg at googlemail.com>
=====================================
Outline:
Decibel, the real time communication framework for KDE, is severely
lacking integration into the rest of the KDE 4 environment. I propose
to work on several different aspects of Decibel's integration into KDE
that will help to make it functional and useful to users.
-----
What I intend to do:
The thing's I will work on are listed here, and then explained in detail below.
1. Akonadi integration
2. Contact list plasmoid/dataengine
3. KRunners supporting "Chat with..." "Call..." and "Video link with..."
4. Finish plasma presence applet
-----
Further Detail:
1) Akonadi Integration
Integration with akonadi for storing of contact data is a prerequisite
for the other points of integration with KDE that I intend to complete
during the summer of code period. At the moment contact data is stored
in a .ini file by Decibel and has to be edited by hand. This is not an
acceptable solution for end users, and is only there as a stand-in
until the Akonadi integration is complete. Since there are many
applications that will want to have access to Decibel's contact
information. It would be logical for it to be stored in Akonadi, along
with all the other PIM data.
Although this has been discussed a little on the mailing lists, no
conclusion about exactly how the contact data should be stored in
Akonadi has been reached. So, the first part of this task will be
discussing with the other people involved to choose the most
appropriate way to store the data. Questions such as whether each
Decibel-contact should be stored as its own item in Akonadi, or
whether it should be an extra 'part' of an address-book contact item
still need to be answered. Due to this, I will not be in a position to
start coding immediately, but will need to discuss with the akonadi
and other decibel developers the different options and then possibly
try basic implementations of different approaches before deciding on
the best way to complete the integration.
An object to store all the information related to a contact, such as
each different instant messaging network they can be contacted on and
when they were last online, will need to be designed and created in
the decibel lib. This is the object that will be stored in akonadi,
and used by any program that wants to use contact data. Exactly what
information that object should contain will need to discussed before
creating it.
Once the coding starts, decibel itself will likely need some
modification (more than just a new ContactConnector implementation) to
use this new object to represent contacts. As a result it will be easy
for applications that want to display, for example, a list of instant
messaging contacts, since they need use no more than an instance of
Akonadi::ItemModel. A tutorial will also need to be written on
techbase for accessing contact data, in order to aid adoption of
Decibel.
Once all contact data is easily available from akonadi, it will make
it possible to implement the remaining features that I have proposed.
2) Contact List Plamoid and Dataengine
These features will result in a basic plasmoid that uses the presence
information from akonadi that is available as a result of component 1
above. It will provide a basic IM contacts view plasmoid which users
can then click on to start a conversation through a configurable
Decibel compatible instant messaging application.
3) Plasma Runners
As suggested by Aaron Seigo, runners that allow you to start real-time
communications with your contacts via KRunner or other runner enabled
plasma components would be very useful. For example you could type:
"chat with George Goldberg" into KRunner and it would offer a result
that starts an instant messaging session with that person in your
default IM application. Other runners might be "call George" and
"video link with ..." , although the wording of the calls for these
runners obviously could be better.
4) Complete plasma presence applet
The current plasma presence applet is very crude and provides the data
read-only. I will make it more visually attractive and allow the user
to change their status and status message from within it.
-----
How I will get it done:
The time I spend working on this project is likely to be in the region
of 30-40 hours per week, since I have very minimal other commitments
during the period of the Summer of Code.
I am comfortable coordinating my work over IRC with a mentor in a
different timezone, since all my previous open source coding has been
coordinated in the same way - discussion via mailing list or IRC.
I am also planning to attend Akademy 2008 in Belgium, which should
provide a good opportunity to get to know other KDE developers and to
get lots more coding done.
-----
What I have already contributed:
I have been contributing to decibel since early February 2008,
learning about Qt and KDE in the process. I have contributed a
collection of bug fixes and small features to decibel including:
* Integration with KWallet to store account data.
* A plasma dataengine providing the users presence information from decibel.
* A basic plasma applet that displays information from this data engine.
* An example text chat application for Decibel
* Techbase tutorials for Decibel (still on my user page, but won't be
by the time I submit this for real ;))
-----
About Me:
I am currently taking a gap year between high school and university: I
will be starting at Imperial College, London studying Electronic and
Electrical Engineering in October 2008.
I have been following KDE development for several years, but have only
recently got involved in coding. I have been following the development
of decibel for over a year with great interest, and so am very keen to
work on this particular project.
My IRC nick is 'grundleborg' and my KDE svn account is 'gberg'.
More information about the Decibel
mailing list