[Kde-pim] GSoC - Akonadi SyncML agent

Sascha Peilicke sasch.pe at gmx.de
Wed Apr 1 12:32:30 BST 2009


On Tuesday 31 March 2009 14:46:33 Kevin Krammer wrote:
> On Tuesday 31 March 2009, Sascha Peilicke wrote:
> > On Tuesday 31 March 2009 13:26:38 you wrote:
> > > On Tuesday 31 March 2009 11:12:17 Sascha Peilicke wrote:
> > > > I already had a talk with Kevin about this back at the Qt Dev Days
> > > > last year. In the meantime, I missed to get in touch with Volker at
> > > > FOSDEM, but Kevin reminded me about that idea and so I came up with
> > > > this (not perfect yet) GSoC proposal:
> > > >
> > > > http://socghop.appspot.com/student_proposal/show/google/gsoc2009/sasc
> > > >hp e/ t1 23849664087
> > >
> > > I can't see anything there without signing in I'm afraid.
> >
> > Hmm, I don't think it's possible to see proposals without being logged
> > into the GSoC page...
>
> Maybe you can send a text-only version as an email to list?
>
> Cheers,
> Kevin
See the attachment for that GSoC proposal.
-- 
Sascha Peilicke
http://saschpe.wordpress.com
-------------- next part --------------
Abstract:
Provide means for Akonadi to synchronise it's PIM database entries with other software/devices through the SyncML protocol.
Content:

Name: Sascha Peilicke

Email Address: sasch.pe at gmx.de

Freenode IRC Nick: saschpe

Location (City, Country and/or Time Zone): Magdeburg, Germany

Proposal Name: SyncML Agent for Akonadi



Motivation for Proposal / Goal:

Akonadi offers great options in sharing all kind of PIM data and functionality between local applications. All data is kept in a central database and easily available through several specialized plugins. As it becomes more common to use several different computers or mobile devices with each different sets of PIM applications, the logical step would be to allow sharing PIM data across all those devices. To be able to synchronise two PIM data-sets effectively, one should use a method that is in use, documented and open. SyncML is the industry standard for PIM data synchronisation to comply with these requirements. The final goal is to be able to sync a local Akonadi database with any SyncML-compliant device or software through a graphical user interface.

As part of an internship at Nokia Qt Software (formerly known as Trolltech ASA), I was able to work on a PIM sync app (known as "PimSync") with that functionality for Qtopia (a Qt-based mobile device platform). So to say, I am already quite familiar with SyncML and PIM stuff and can use that software as a starting point.



Implementation Details:

The project would start with a conception of how to integrate SyncML into Akonadi in the most elegant way. This could also result into a stand-alone application (similar to KPilot to sync Palm devices).

I already mentioned Pimsync, which can be found here. Based on constrains for mobile devices I chosed to use an already existing library for the SyncML protocol itself. Back then, I used the so called Funambol C++ Client API from the Funambol project. For the Akonadi agent I plan to re-evaluate other options (libsyncml to my knowledge), as the Funambol library turned out to have some issue with it's build system and it's use of 3rd-party libs.

Regardless of the actual backend-implementation, a simple user interface will be needed. This means that the user should be able to configure new/existing devices/software to sync with, choose what to sync and also how to sync (SyncML offers different ways how to sync two data-sets). I plan to use KPilot as an inspiration for the UI, maybe there's even room to modularize KPilot itself and integrate SyncML-functionality into it. The UI should also provide some default configuration profiles for standard use-cases. This could be syncing with web-services, as there are exist currently only a handfull of good Organizer/PIM web-services, they all could have a default configuration profile where the user only has to fill in his user/pass values.

The third step would then be to try to automate the sync process as much as possible. KDE provides means to discover devices and services. This could be used to automatically start sync sessions with already known devices/software in the background and to notify users only in case of problems or where necessary.

To sum it up, I plan to divide the GSoC into these three steps sorted by importance:

   1. Develop Akonadi SyncML Agent (backend)
   2. Create a GUI frontend
   3. Implement automated (background) sync



Desired functionality:

    * Be able to sync basic Akonadi PIM data types
          o contacts
          o appointments
          o tasks
          o notes
    * Be able to configure important aspects
          o How to sync with different sync partners (e.g. devices)
          o What data types to sync with partners (only contacts or all available, etc.)
    * Recover from sync errors (broken connections, etc.)
    * Provide a simple user interface
          o Default profiles for standard use-cases

Optional functionality:

    * Be able to sync other PIM data types like
          o strigi search index
          o nepomuk metadata
          o email



Tentative Timeline:

Week -4 (March 30) to Week -1
- Become familiar with Akondi codebase and Akonadi agents
- Become familiar with KPilot codebase and discuss integration points with devs
- Research possible implementations (standalone-application, integration into e.g. KPilot, etc.)
- Decide what SyncML protocol lib should be used (e.g. libsyncml or Funambol Client API)

Week 0
- Create Akonadi agent skeleton, set up build system, initial import into KDE svn (playground)

Week 1 to Week 4
- Implement Akonadi SyncML agent

Week 5 (July 6)
- First delivery
- Mid-term evaluation

Week 6 to Week 10
- Create graphical user interface (either stand-alone or as part of KPilot)
-

Week 11 (August 17)
- Final delivery
- Final evaluation deadline

Week 12
- Final bug fixing and testing
- Make sure all unit tests pass

Week 13 (September 3)
- Submission of required code samples to Google

Do you have other obligations from late May to early August (school, work, etc.)?:

Apart from the usual courses which I have to attend for my studies, I will have an exams period in late july.

About Me (let us know who you are!):

My name is Sascha Peilicke and I am a 8th semester Computer Science student at the Otto-von-Guericke Universität Magdeburg - Germany.

I am contributor to the KDE project and already did an internship at Nokia Qt Software. I have a strong C/C++ development background for several years now and participated in a range of open source projects.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-pim/attachments/20090401/6ef414e9/attachment.sig>
-------------- next part --------------
_______________________________________________
KDE PIM mailing list kde-pim at kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/


More information about the kde-pim mailing list