adityapatawari

Aditya Patawari

Contact information

Project

  • Project Name: Deja Dup Improvements
  • Project Description:

I want to implement a few features which are presently not there in deja-dup.

  1. Profiles for different target locations : People usually place their backups in different directories, probably one directory for weekly backups and other for monthly. This will feature will create profiles for these directories with separate settings.
  2. Also I would like to give user some more options while maintaining the simplicity of the application. One particular thing in my mind is to give the user option to create a full backup from scratch or to backup the new files since the last backup without overwhelming the user about the details of differential backups.
  3. Selecting Files along with directories : As of now Deja-Dup is able to create backups of directories. This proposal aims at building a mechanism so as to allow the user to exclude certain files if he wants or to create a backup of files and not only directories.
  • If you would be willing and able to do other projects instead, which ones?

Project "Launchpad Offline Bug Client" and "Package Manager Improvements" also appealed me. I have faced problems of not able to submit bugs at times due to bad Internet connection or at times I feel like I would submit the bugs all at once but later forgot about them. Launchpad Offline Bug Client will be handy to deal with such situations. Package manager improvements involves creation of a Kubuntu Software Center just like or even better than Ubuntu Software Center.

  • Why did you like this idea?

Many people switch to Linux from Windows because of virus problems and heavy data losses. When I started with Linux a few years ago I had the same problems with Windows. Linux saved me from virus attacks but creating backups was a problem. Existing backup tools had a very complicated UI and a lot of details which a beginner need not to know. Deja Dup is a tool which addresses this problem some what successfully. But I believe that more features can be added to Deja Dup without creating a "run for life" situation for beginners.

  • Please describe a tentative project architecture or an approach to it:

I have already built Deja Dup from source and I am familiar with Vala. Though I would devote a lot of time of “community bonding” on understanding the code and getting more out of Vala.

I would start getting more fluent with Vala and making sure that I am ready to go with all the tools. This will take a couple of weeks or less.

Next 3 weeks will be devoted to feature 1. I will give user the choice to create backups from scratch or to add new files to existing backups.

Next 4-5 weeks will be spent on creating the “Profiles” feature. By the end of this Deja Dup will be more awesome in terms of ease of use.

Rest of the time will be spent on bugs, documentation and other stuff.

A possible list of functions I plan to use are :

  1. getChoice() : Will get the choice from the user regarding the type of backup to be created. This function will call the appropriate function on the basis of choice provided by the user. The functions to be called are already implemented in the Deja Dup. They will be tweaked a bit in accordance with the choice.
  2. getProfile() : This function will get the profile based upon the user's choice and will create the backup accordingly.
  3. createProfile() : This function will provide user with an interface to create a new profile and create it.
  4. loadProfile() : This function will load an existing profile for editing and will save it when done.

I know that entire essence of Deja-Dup is its simplicity. I believe that complexity depends on implementation. An easy to use UI can reduce complexity a lot. What I have proposed will not increase the complexity significantly as these are not mandatory to setup. A user need not to have multiple profiles or schedule the backups. These are the options which will be there for those who want to use them. Alternatively, we can introduce a basic view which will show the Deja-Dup the way it is now and an advanced view which will include these settings, namely profiles and scheduler. This way we won't scare off the newbies while add utility for the advanced users.

  • Give us details about the milestones for this project

The project will consist of three milestones namely the two features I plan to implement. The first feature will be good to go well before the mid-tern evaluation and I will start the work on Profiles feature as soon as I am done with first feature. A timeline for the milestone deliverables is given below:

  1. Week 1-2 : Get more grasp on Vala.
  2. Week 3-5 : Get the Deja Dup ready with the option to create the backups from scratch or to add files to an existing backup.
  3. Week 6-10 : Implement Profiles feature on Deja Dup.
  4. Week 10-12 : Write the documentation, tackle bugs and submit patches.
  • Why will your proposal benefit Ubuntu?

Ubuntu has a large user base and is the first choice for beginners. Hiding details and difficult terminologies in interface will make the tool more usable for newbies. Also since Ubuntu does not ships with any backup tool as of now, this might find place in future releases.

Ubuntu has a large user base and is the first choice for beginners. Hiding details and difficult terminologies in interface will make the tool more usable for newbies. Also since Ubuntu does not ships with any backup tool as of now, this might find place in future releases.

Open Source

  • Please describe any previous Open Source development experience

I do not have any substantial experience of open source development as such but I have experience in creating customized Linux distribution. I have remastered several distributions to increase their appeal to users and newbies.

  • Why are you interested in Open Source?

Open Source offers a perfect showcase of showing your capabilities. While for closed source people can only admire your application,Open Source provides with a platform for displaying your coding tactics. It can help you meet new people and developers across the globe. It enables sharing of knowledge. It helps to create a very robust application even if you don't know every aspect of the product you are developing because you can always collaborate in a better way with Open Source.

Availability

  • How long will the project take? When can you begin?

I estimate 2-3 weeks of study, UI Mockups and sketches. I want to dedicate 5-6 weeks to coding and the remaining time on checking out bugs, breaking the application, patches etc.

  • How much time do you expect to dedicate to this project? (weekly)

Since I would be having my vacation for two months I can easily dedicate atleast 35 hours a week.

  • Where will you based during the summer?

I will be based in Delhi, the capital of India. The city is well connected and has great infrastructure.

  • Do you have any commitments for the summer? (holidays/work/summer courses)

No commitments as such. Since I would be having my vacations so I would have enough time for the project.

Other

  • Have you applied for any other 2010 Summer of Code projects? If yes, which ones?

As of now I am thinking of applying for a project with Melange (a Django based framework which powers GSoC website). No other projects are in my mind right now.

  • Why did you apply for the Google Summer of Code ?

Google Summer of Code presents student with an opportunity to get in touch with some very awesome organizations. The mentors are the masters of their respective fields and I can learn a lot from them and contribute to the Open Source world side by side.

  • Why did you choose Ubuntu as a mentoring organisation?

Ubuntu has been the distro of choice for most of the users since a very long time. Most of my posts on my blog are also written keeping Ubuntu in mind. So, if I do contribute to Ubuntu it will reach to a very large scale of people.

  • Why do you want to participate and why should Ubuntu choose you?

As i said contributing anything to Ubuntu will help me to reach a wider user-base. Not only this GSoC certificate is a prestigious honor itself. Also I have conducted several workshops, given scores of talks on open-source and have conducted a lot of install fests. Its now time for contributing from a developer's perspective. I have used Ubuntu, Kubuntu, Fedora, Mandriva and lots of other distros. I know which distro lacks where and the strong points of that particular distribution. I have past experience of designing PHP and Python based user interfaces/applications. And I don't have much tto do except this during my summer vacation Smile :)

GSoC/2010/adityapatawari (last edited 2010-04-09 12:22:21 by 220)