Summer Coding 2010 proposal - configure software items and repository via web service

Project Name
Configure software items and repository via web service

The Idea
My project come from the idea "Customizable application installer".

This is the link: https://fedoraproject.org/wiki/Summer_Coding_2010_ideas_-_Customizable_application_installer

Description
The Ailurus is a Linux tool to make linux easier to use and help the users to learn more skills about Linux. Now I want to make Ailurus customizable.

What I will do are:
 * 1) Build a google app engine server to collect information submitted by users under their agreement. This information covers the Linux skills, the suggestions, the popular software, the third party repositories and so on.
 * 2) Add a client lib to Ailurus. The client lib provides the APIs to communicate with the google app engine server. Based on the client lib, I will add some graphical interfaces for users to submit the information.
 * 3) Users can edit the detail and submit the modified detail to the server.
 * 4) Add "a Fedora repositories configure pane". User can add any repositories (including the third party repositories), disable or enable selected repositories and remove any existed repositories. User can also submit the useful third party repositories to the server.

In general, I will use python to develop, and the gtk lib, networking lib for python is needed.

Timeline

 * Week 1: Design the protocol for communicating between server and client.
 * Week 2-3: Build a simple google app engine server. The server is able to receive and store data submitted from consumers. And a terminal will be written to operate the data directly. Write a lib for client to communicate to the server. Test the client lib.
 * Week 4: Add the graphical interface to submit Linux skill and suggestions to server using client lib.
 * Week 5-6: Write the "Fedora repositories configure pane".
 * Week 7: Fix bugs. Add user control to the server.
 * Week 8-9: Add cache to client lib. Use compressed data transmission.
 * Week 10: Fix bugs. Write Document
 * Week 11: Project submission

Actually I have started my work now. So it is probably that the progress will be faster than expected. If so, I will add some advanced features to the application.

Convincing

 * I am a developer of Ailurus (http://ailurus.cn/). I had develop a lot of features for Ailurus. For example:
 * I added a "clean pane" to Ailurus which can be used to clean the cache, remove useless kernel and free memory.
 * I added a feature to automatically save repository response time.
 * I added a feature to merge separate repository configuration into a file
 * And so on
 * I had written a auto seed program for the sjtu pt http://pt.sjtu.edu.cn. This program will auto make torrent file for the selected resources and then update them to the pt server.
 * I had written a simple OS. It is not totally complete, but it can run multiple processes. The link is http://github.com/sKabYY/Simphinix
 * I had also written a compiler, a pc emulation and a LAN communication software.

Me and the community

 * 1) If your project is successfully completed, what will its impact be on the Fedora community?
 * 2) My answer:
 * 3) * The "repositories configure pane" will be very useful since there is not a graphical interface of configuring repositories in Fedora and configuring the repositories using the terminal or text editor is a little difficult to the beginners.
 * 4) * Web service will make the installer more convenient to collect the suggestions of customers, which will lead to a better installer and speed up the development in future.
 * 5) Mentor's Answer:
 * 6) * CHEN Yangyang aims at building a web service, in order to support on-line meta-data synchronization. When the project succeeds, the users can upload/download meta-data to/from web service. Some users can help other users, by sharing the metadata. It is also possible to synchronize meta-data between two computers. A lot of Fedora users will get benefit.
 * 7) * I am Homer Xing. My email is homer.xing [AT] gmail [DOT] com
 * 8) Fedora community's Answer:
 * 9) * Fedora still lacks a tool for configuring repository. I am quite interested in it. Thank you for hard-working.
 * 10) * Some repositories need a RPM key to verify. Does your web service upload the key to your server? And is GAE going to satisfy the requirement in the future?
 * 11) ** The web service will upload the url of the key. Using flow controling I think GAE can satisfy the requirement in the future.
 * 12) * Developers should pay more attention to protecting users' privacy. I know many users are worried about that.
 * 13) ** The client will not update information to the server without users' agreement.
 * 14) * I am Liang Suilong. My mail address is liangsuilong [AT] gmail [DOT] com
 * 15) What will you do if you get stuck on your project and your mentor isn't around?
 * 16) * I will use the search engine or go to the library to search some useful material. And because I had join the discussion mailing list, I can also ask the other members for help.
 * 17) 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?
 * 18) * Via mailing list and IRC.

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) ** Yes.
 * 4) * Have you met your proposed mentor and members of the associated community?
 * 5) ** Yes.
 * 6) What is your t-shirt size?
 * 7) * XL
 * 8) Describe a great learning experience you had as a child.
 * 9) * The greatest learning experience I had as a child is that my father taught me how to learn by self and the pleasure of learning. Since then I feel learning knowledge is like having something delicious.

Note: you will post this application on the wiki in the category Category:Summer Coding 2010 applications. We encourage you to browse this category and comment on the talk page of other applications. Also, others' comments and your responses on the talk page of your own application are viewed favorably, and, while we don't like repetitive spam, we welcome honest questions and discussion of your project idea on the mailing list and/or IRC.

The NeL project has some good general recommendations for writing proposals. We encourage Summer Coding code to include tests.

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].