Summer Coding 2010 proposal - Kronikarz Backup Restore Tool

About my Project

 * 1) Name : Kronikarz - A simple tool for desktop backup and recovery
 * 2) Project shortinfo - Summer Coding 2010 ideas - Kronikarz - shortinfo
 * 3) Summary of Idea: Handy graphical tool for archiving settings of applications. This tool will be useful for users who:
 * 4) * want to simply backup / restore look-and-feel and settings of applications
 * 5) * frequently migrate from one distribution to another
 * 6) * have more then one device and want to sync settings
 * 7) Details
 * 8) * The application(Kronikarz) will be like a plug-in engine. For each application that Kronikarz can support a backup, an XML hook-in file (plug-in) must be defined. The application reads the plug-in, and backs-up or restores accordingly.
 * 9) * It will have a GUI for the user to specify what to backup, etc.
 * 10) * It will have daemon to schedule backup and sync settings, also customizable with a UI.
 * 11) * The backend does the main backup and restore functionality, installs missing packages using PackageKit for restore.
 * 12) * The code will be written in Python and UI will be built with Qt.
 * 13) Features
 * 14) * Easy to use intuitive UI, usable by users of all expertise.
 * 15) * Easy search and select of applications to be backed-up, synced or restored.
 * 16) Timeline
 * 17) * week 1 — matching of technical tasks, determination of participant's roles
 * 18) * week 2 - week 4 — realization of backend with backup / restore functional
 * 19) * week 5 - week 7 — realization of basic GUI-application
 * 20) * week 8 — realization of service/daemon
 * 21) * week 9 - week 10 — debugging
 * 22) * week 11 — final testing, creation of rpm-package.

My background

 * 1) I am a fourth year undergraduate student of the Department of Computer Science and Engineering, Indian Institute of Technology, Kharagpur, India.
 * 2) I haven't contributed to open source before, and look at this as my first taste to open source development. However, I have done some projects as a part of my academic curriculum.
 * 3) * A minimal processor. [Verilog] (as a group of 2)
 * 4) * A compiler in C using Flex and Bison for a toy language.
 * 5) * Simulation of a file system. [C++] (as a group of 2)
 * 6) * HTTP server, client, proxy server, and DNS server. [C++] (as a group of 2)
 * 7) * Chat server and client (as a group of 2)
 * 8) * The code for the Chat Server and simulation of a file system can be found at http://github.com/NOLFXceptMe, my groupmate's.
 * 9) *I am pretty confident about this project, and I think I can complete it.
 * 1) *I am pretty confident about this project, and I think I can complete it.

Me and the community

 * 1) If your project is successfully completed, what will its impact be on the Fedora community?
 * 2) * Users can backup and restore settings across different systems and distributions easily.
 * 3) * Users can sync settings across different systems.
 * 4) What will you do if you get stuck on your project and your mentor isn't around?
 * 5) * I will try to solve the problem myself, else I'll leave the problem for the time being and work on a different module until my mentor is available. If my mentor is away for an extended period of time, I will ask the Fedora community for suggestions and possible solutions.

Miscellaneous

 * 1) We want to make sure that you are prepared before the project starts
 * 2) * Can you set up an appropriate development environment? - Yes
 * 3) * Have you met your proposed mentor and members of the associated community? - Yes, I have met my mentor.
 * 4) What is your t-shirt size? - M

Comments
Use the Talk:Summer Coding 2010 student proposal application to actually make comment, which then appear here on the main proposal page. You can use this link to make a new comment].