Projects/Summer of Code/2007/Projects/Kontact Journal Blog Support

Kontact Journal/Blog Support

Name: Mike Arthur


Mentor: Cornelius Schumacher


Currently, KDE's Kontact provides basic Journal support. However, this cannot be currently posted remotely or any more than plain-text used in creating entries. This project will improve this Journal support, integration with the KBlog blog-posting library, adding a WYSIWYG editor and other desired functionality.

Benefits to the KDE Community

  • Providing the ability to store, save and modify blog posts from Kontact
  • Allowing "rich" journal content
  • Aiding creation of a stable library for KDE application developers to make blog posts

Project Details

Kontact/KOrganizer has "Journal" support. This is currently fairly limited, allowing a user to create a basic, plain text document which can be attached to a time and date in Kontact. However, this cannot be currently customised or made to export the journal to any external source.

Several codebases exist to implement this functionality. The main library providing this functionality is KBlog[1] , in kdepimlibs in the KDE SVN. This provides an interface to send blog posts to Blogger 1.0 or MetaWebLog compatible server. KLuJe[2] is a KDE LiveJournal blog poster, allowing more LiveJournal-specific functionality such as emotions. I hope to integrate the LiveJournal support from KLuJe to KBlog, as well as aiding in the creation of Blogger 2.0 and Atom 1.0 support. This will depend on how much work the creator of KBlog wishes to perform towards this task. The other needed features I will work on are full-GUI integration for the KBlog library with Kontact, customisation, easy setup, Akonadi integration and a WYSIWYG editor. C++ will be used for all development for Akonadi and Kontact integration.

The status on Akonadi is somewhat uncertain at present. The KDE-PIM team are unsure whether KDE 4.0 will have a KDE-PIM release at all or if it will simply be used without Akonadi until KDE 4.1. As a result, if Akonadi is delayed, the focus will be on producing code that can be not only used in Akonadi but also in KDE 4.0.

Several feature requests have been made for Kontact's Journal integration. These can be viewed at Allowing for time, as many of these features will be integrated as possible, but the priority is to focus on the aforementioned features.

Project Schedule

  • June 25th - July 23th: Integrate KBlog into Kontact, providing basic GUI functionality.
  • July 23rd - August 20th: Create WYSIWYG and rich editor for Journal support and perform HCI analysis and streamlining of GUI.
  • August 20th - August 31st: Final bugfixing and testing code for integration and evaluation.


My name is Mike Arthur and I am a fourth year undergraduate at The University of Edinburgh, Scotland. I study Computer Science and Management Science and graduate this summer with an expected 2:1 grade.

I have approximately a years experience with C++, working on applications for Wolfson Microelectronics and a Computer Graphics practical at university, creating a 3D engine from a 2D drawing engine and mathematical calculation. A grade of 85% was received in this practical, one of the highest in the class. I feel confident I have sufficient C++ ability to undertake this project as I four years Java experience and two years C experience, and have also had to learn multiple new languages per-semester at university.

For three months of the summer of 2006 I worked at Wolfson Microelectronics writing Windows CE and Linux kernel device drivers in C. This helped create the strong focus on reliable and efficient code that I have today, as with the embedded hardware involved running dangerous code once could result in the destruction hundreds of pounds of electronic equipment.

My honours project involved the creation of a Ajax web application in Java/JSP/JavaScript and an evaluation of the usability of this application. Details for access can be provided on request. For this I used the codebase of Dizzy[3], an existing OSS application, so am experienced in working with foreign codebases. My usability skills were honed from an HCI course in the first semester, featuring a group usability analysis practical, for which my section received 80%. The Journal SoC project requires someone who has the ability to write clean, efficient code but also to evaluate and create a better user interface for the journal functionality, and I believe I am capable to perform meet these requirements.

My management experience from my course and two 100+ hour group practicals and a 400+ hour honours project has given me exceptional time management. Deadlines with academic work are always met well in advance and to a high standard. Academically, this year's grades have all been above 80% and my real-world experience and resulting job offer from my mentor at Wolfson Microelectronics indicates my drive and ability to complete tasks.

I have worked on another OSS project with a similar environment to this project. My JFreeChart patches for PRISM[4] to add support for JFreeChart to export OpenDocument spreadsheets/charts have been accepted and should be in the next version. From this I learnt to communicate with project maintainers through email and ways of ensuring that our goals were kept equal. I also use IRC and Jabber frequently at home and whilst on my laptop, another method of possible communication with a mentor in other geographical locations.

I have had limited spare time due to university in the last few years, but I have developed a few other OSS projects in my spare time, available on the "Work" page of my website[5]. These include a one-file PHP picture gallery, a C volume-key daemon that does not depend on X and a Kopete theme.

Stephen Gilmore, [email protected], the supervisor for both my honours project and the previous group projects can provide an academic reference.


I am passionate about OSS and about KDE. KDE has been my daily desktop environment on all my desktops/laptops for 2 years and as an active blogger I would personally find the functionality provided useful and therefore am driven to produce a good solution rather than simply a passable one. I plan on dedicating all the time of this project as a full-time job. I may be away for a week of the project time, but this time will be covered by working harder in other weeks.

I hope to learn a lot this summer and give a lot which would benefit KDE, the open source community and my future career.


This page was last edited on 27 June 2013, at 21:19. Content is available under Creative Commons License SA 4.0 unless otherwise noted.