Kamion -- User State Migration Tool for KDE

Synopsis

A user friendly tool for transferring user data, such as e-mails, notes, baskets and desktop settings between kde installations.

Goals

  • To make transferring user data to new kde installations easy
  • To make it easy to send (for example) notes, baskets, or desktop settings to a friend (or any type of application data/settings
  • To make it easy to add new resource types
  • To implement automatic version checking

Project Details

Kamion will be a wizard style application. It will offer two choices, to pack the data for moving, or to unpack from an existing package (see s1.jpg). When you select the packing option, it will offer a screen (see s2.jpg) for you to chose what resources you wish to move. The list will be organized in some user friendly manner (not shown, or decided yet) into groups of similar resources (eg. personal data, desktop settings, app settings). The resource types will be defined in xml files to make it easy for application developers to add their resources as an option. Here's an example:

<resource>
  <name>E-Mails</name>
  <app>kmail</app>
  <version>1.*</version>
  <files>
    <tree root="~/Mail">
  </files>
  <optional>  (see the more>> on s2.jpg)
    <name>Filter rules</name>
    <files>
      <file src="~/.kde/share/config/kmailrc">
    </files>
  </optional>
</resource>

When unpacking data the app will display a list of the data contained in the package so the user can once again select what he wishes to copy. Kamion will also look for compatible versions of applications on the target machine, and flag entries that do not have the appropriate version installed (and still offer to install them if it makes sense), An option could also be added to the kde welcome wizard to import data from a .kamion file. An appropriate mime type will also be installed. There is also a lot of room for improvements. The xml format could be later expanded to offer greater control for application developers, and more options for users. Existing applications could be modified a little to enable for example transferring of your music collection or photo albums. The users could also be offered to select particular subsets (eg. a single note, two baskets, and one mail folder with mailing list archives). Finally, Kamion means truck, so it should ease the choice of an intuitive icon for the app :)

Project Schedule

I can start working on the project right now, and expect to finish it by September 1.

Bio

I got my first computer when I was five, a commodore 64, and I have been using computers since then. I started programming seriously when I was in highschool. I went to a science center for talented students called Petnica (http://www.psc.ac.yu) and as a project there, I wrote an AI routine in C for a popular card game Preference. I was 16 at the time. It took a couple of months of hard work, and bad grades in school but it was a great experience.

I got a part time job in an ISP and worked there, writing small perl and bash scripts, and doing some system administration tasks. The biggest thing I wrote there was a webmail interface in php. I was at the time the main administrator of my school's computer center (so the grades improved a bit :)). I also installed and configured my first linux distro (slackware 7). I wanted to study software engineering and I applied to several colleges abroad. I was most interested in going to Imperial in London. I got admitted, but it was to expensive for non EU students (13500 instead of 1300) so I had to settle with what I could afford. Now I'm on the 3rd year of electrical engineering with computer science. I couldn't care less for electrical engineering, but it is the closest thing available here. I spend most of my free time (my friends would say all) learning how to write good software. I'm still not nearly as good as I would like, and that is mainly because college takes up a lot of my time.

Motivation

Almost everything I know about programming I learned online thanks to people who write docs for free (god bless tldp, Bruce Eckel, and everyone that has ever written a tutorial). I find the open source community to be fun, friendly and interesting, and I cannot overemphasize how much it has helped me in my life so far. KDE is my desktop of choice, and I've been learning Qt and KDE for about two years now. I wrote some smaller test applications, but I want to start writing something usefull. I love the idea of making computers more accessible for non technical users, and I think KDE is a great project to do that. I also love the idea of open source on the average desktop. I had a few more ambitious ideas for a project, but I think this is as much as I can do *good* with my current skills. I also think it will help make KDE a little more complete and user friendly.

[ Edit ]