Summer Coding 2010 proposal - an optimized architecture for customizable application installer

Customizable Application Installer
My idea is come from here: Summer_Coding_2010_ideas

Description
Linux is a GREAT OS, but to many new comers, it't hard to learn to ropes. Ailurus is an application which makes Linux easier to learn & use. It helps new users of GNU/Linux to install software, config the desktop environment easily, and learn some useful Linux skills etc.

Ailurus lists specific software for specific task. It lists few software, rather than all packages in Fedora repository, which helps new users because new users can find out software they want directly, rather than do searching in a lot of packages.

To make Ailurus more customizable, I'm making effort to achieve these goals:
 * 1) New software items can be added, if software is in Fedora repository. The only work is to provide a package name, then a new item will appear.
 * 2) * For example, user chooses "For developers -> Development" category. Then user can add "gvim" in this category.
 * 3) Software items can be removed.
 * 4) * For example, user chooses "Common -> Appearance" category. Then user can remove any items freely from this category.
 * 5) Experienced Users can specify the whole process of install (For the application which has a complex install process )
 * 6) * For example, user could specify the terminal-commands and python statement to install a application
 * 7) Under the user's permission, the changes to the software items can be uploaded to a web service on google app-engine. Other users can download the changes.
 * 8) * For example, user adds "gvim" item. Then user can upload "gvim" item to a web service.

All these work will be done in Python + PyGtk.

Timeline

 * I have already start my work for days~
 * week 1~2 : Radicate the architecture of new features(0.5 week) and adjust origin architecture to suit the new features (1.5week)
 * week 3~4 : Design(0.5 week) & Implement(1 week) & Test(0.5 week) the tool-lib for Adding/Removing software item
 * week 5~6 : Design(0.5 week) & Implement(0.5 week) & Integrate the related UI with tool-lib (0.5 week) and add the change into Ailurus (0.5 week)
 * week 7~8 : Fix bugs (1 week) and implement advance features (1 week)
 * week 9~10: Make sure every thing work as it should be, write document and packaging
 * week 11 : submission

Convincing
Open-source and linux are my passion.

I'm a developer of Ailurus (http://ailurus.cn) and I have already have sth done with it such as:


 * expand the hardwareinfo panel
 * develop a method to identify application's desktop platform

now I'm working on making Ailurus more customizable ~

I'm good at debug shooting and never give up when I was stuck.

I know linux programing well.

I have lots of programing experience and I'm familiar with Python, Java, C/C++, asm, Gtk, Qt. Last term, I implement a simple OS (That teaches me a lot; see http://github.com/gtxx3600/mySimpleOS)

I'm familiar with project and team-work. Last summer, my friends and I wrote an instant messaging software with teaching aid function (I wrote the server and my friend take the client; see http://github.com/gtxx3600/AMSServer)

Last winter, I participated in developing an online-exam system (used in college)

Impact

 * 1) My Answer
 * 2) *This work will make use Fedora easier and user could customize their Fedora simpler.Humanize our desktop environment and app-management. More people will be attracted by the spirit of share and freedom, join us and become a Fedora user.
 * 3) Mentor's Answer
 * 4) * As far as I know, the standard Fedora package installer is awesome, however it is not customizable. Now Haofu Han tries to implement "customizable" software. After this project succeeds, the users can customize the software items. They can store the names of their favorite software. They can hide the software which they dislike. It will be a useful application which is complementary to standard Fedora package installer. The usability of Fedora will be improved.
 * 5) * I am Homer Xing. My email is homer.xing [AT] gmail [DOT] com
 * 6) Fedora community's Answer
 * 7) * I am Liang Suilong. My mail is liangsuilong [AT] gmail [DOT] com
 * 8) * In your proposal, you refer to Firefox extensions management. I believe that a packager manager in Fedora can not be allowed to manage software out of Fedora repository or RPM package. So this part should be removed in my opinion.
 * 9) ** Thanks for your advice, I have already changed that part~
 * 10) * Will you merge some features of reposiDevelopmenttory configuration written by Chen Yangyang? It is quite convenient that A package manager have a configure front-end.
 * 11) ** Surely there will be. Chen Yangyang and I are good friends, we will enhance communication and collaborate closely to make Ailurus more perfect.
 * 12) * Gpk-application is the default front-end in Fedora. Yumex-ng also has a long history. They are both not perfect. So you can port some good features to enhance your application from them.
 * 13) ** I would like to convey my heartfelt thanks to you for your valuable suggestion, your advice will make me to attain a yet higher goal.

Other

 * 1) What will you do if you get stuck on your project and your mentor isn't around?
 * 2) *I contact with my mentor regularly, so there is no need to worry about that~
 * 3) *Usually I could find my answer in Google. In other cases debugging or discuss with team-members will help.
 * 4) *I'm good at trouble-shooting~
 * 5) In addition to the required blogging minimum of twice per week, how do you propose to keep the community informed of your progress and any problems or questions you might have over the course of the project?
 * 6) *I will update my progress on wiki, and I have already subscribed to the summer-coding-discuss~

Miscellaneous

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


 * 1) Is there anything else we should have asked you or anything else that we should know that might make us like you or your project more?
 * 2) *Thanks for providing us such a great opportunity~