Summer Coding 2010 proposal - Auto Codec FTP

中文版本: http://fedoraproject.org/wiki/Summer_Coding_2010_proposal_-_Auto_Codec_FTP_(zh-cn)

About our project

 * 1) What is the name of your project?
 * 2) * Auto-Codec FTP
 * 3) Does your project come from an idea on the Summer Coding 2010 ideas page?  If so, provide a link for reference, as well as a link to any discussions with mentors about your proposal.
 * 4) * No, it's original. But we still don't have a mentor.
 * 5) Describe your project in 10-20 sentences. What are you making? Who are you making it for, and why do they need it? What technologies (programming languages, etc.) will you be using?
 * 6) * '''It's a FTP client with an easy to use interface.
 * 7) * There's a general problem in non-English speaking countries. The ftp servers in these countries always don't use UNICODE to code the return data. This causes the unreadable codes in local software. Therefore, the most important feature of our project is to solve the inconsistent coding between the servers and local operation system. This can provide convenience to non-English speaking countries' users.
 * 8) * In addition, our FTP client may also offer the following features:
 * 9) * 1) A list including major universities and enterprises open FTP server. The list support for custom and up-to-date by us.
 * 10) * 2) Automatically prevent disconnecting by the server.
 * 11) * 3) Optional record the last successful FTP login password.
 * 12) * 4) Auto FTP detection to judge whether the FTP servers is connectable and the connecting speed in the list. (via “ping”)
 * 13) * 5) Daily tips to help the users learn the features of the software.
 * 14) * We are using Python 2.6 and PyQt4 to program.
 * 15) What is the timeline for development of your project? The Fedora Summer Coding work period is 11 weeks long, May 24 - August 9; tell us what you will be working on each week. (As the summer goes on, you and your mentor will adjust your schedule, but it's good to have a plan at the beginning so you have an idea of where you're headed.) Note that you should probably plan to have something "working and 90% done" by the midterm evaluation (July 5-12); the last steps always take longer than you think, and we will consider canceling projects that are not mostly working by then. Here is our Schedule:
 * 16) * 5.1-5.20 Start the designing of the project. Work out the wiki page. Communicate with the community.
 * 17) * 5.21-5.31 Software requirements analyze.
 * 18) * First Week in June Start coding. Design the basic core system of the program.
 * 19) * Second and Third Week in June Perfect the core code. Implement the details of the function.
 * 20) * Forth Week in June Design the GUI.
 * 21) * 7.1-7.12 Project is nearly complete. (90%) Ready for midterm evaluation.
 * 22) * 7.13-7.20 Continue the project, optimizing the code efficiency.
 * 23) * 7.21-7.31 The preparation of the documents. Remove bugs and ready for release.
 * 24) * 8.1-8.9 Final check and fix for the project. Complete the project.


 * 1) Convince us, in 5-15 sentences, that you will be able to successfully complete your project in the timeline you have described. This is usually where people describe their past experiences, credentials, prior projects, schoolwork, and that sort of thing, but be creative. Link to prior work or other resources as relevant.
 * 2) * We have much python development experience (including the two GAE applications).
 * 3) * We also have a lot of spare time to contribute to the Fedora Project on summer vocation.
 * 4) * We are good at English and happy to share with community.
 * 5) * Although we don't have a mentor yet, I and my teammate are in the SJTU and UESTC (Shanghai Jiao Tong University and University of Electronic Science and Technology of China). The two university train professional IT personnel so we have a lot of students, seniors and professors to consult.

We and the community

 * 1) If your project is successfully completed, what will its impact be on the Fedora community? Give 3 answers, each 1-3 paragraphs in length. The first one should be yours. The other two should be answers from members of the Fedora community, at least one of whom should be a Fedora Summer Coding mentor. Provide email contact information for non-Summer Coding mentors.
 * 2) * This project will provide a perfect FTP solution to the non-English-speaking countries' users. It won't let you drop into the unreadable codes dilemma. Also the software will be closer to people's habits.
 * 3) * The project is not so complex and the time of our college students are relatively abundant. So we think we can complete it and do the long-term maintenance and update. We are also interested in add more creativity in it.
 * 4) * On the other hand, the Fedora community provides much fresh and easy-to-use Linux software and resources. As college students, we wish we could make some contribution to the community. We can make an Auto coding Python library to be used in other projects. The summer coding is a platform to communicate new ideas, new technologies and new codes. I think these communication and exchange should continue.
 * 5) What will you do if you get stuck on your project and your mentor isn't around?
 * 6) * For technical problems, I'll communicate and ask for help via mail list, wiki, twitter and so on. Raise my question with respect, I believe many friends can help me.
 * 7) * For coding and testing problems, I can solve it with my teammates, friends, other teachers or checking books in library. The IRC channel is also a good place to refer to. Anyhow, all roads lead to Rome.
 * 8) 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?
 * 9) * It's a good way to join more mail lists. Out team should not work too stubbornly hard. We should spend more time on releasing demos and let more people join the test. The feedbacks will be very important to our improvements. 

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) * Have you met your proposed mentor and members of the associated community?
 * 4) * We have set up a development environment successfully under Linux. Our IDE is eclipse + Pydev.
 * 5) * We don't have a mentor temporarily. But I have a good teammate (ID: sjw204). He is student in University of Electronic Science and Technology of China and he is also good at programing. We are classmates since high school. We communicate with each other closely.
 * 6) What is your t-shirt size?
 * 7) * Both of our size is XL.
 * 8) Describe a great learning experience you had as a child.
 * 9) * There's IT course in my middle school. The teacher taught us Access data search and Regular Expression. It's quite difficult for us to understand the courses. The teacher said that he was eager to give up his nap time and teach us more. Then I always go to his office and he taught me to install the RedHat. I learned some shell and Perl script from him. He is the mentor who leads me into the computer world. So I become a computer fans and learn programing.
 * 10) 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?
 * 11) * 1. The project AutoCodec FTP can be transplanted to many platform such as Windows, Mac OS X and so on.
 * 12) * 2. The code should be with clear notes and easy to be reuse.
 * 13) * 3. The project can combine with GAE platform if possible to update the resource lists automatically.
 * 14) * 4. Multilanguage support as much as possible.