Summer Coding 2010 student application - yyp226

About Me

 * 1)  My name is Zhangwenjie
 * 2)  My email address is yyp226@gmail.com
 * 3)  My wiki username is yyp226
 * 4)  My IRC nickname is yyp226
 * 5)  My wiki page is  https://fedoraproject.org/w/index.php?title=User:yyp226
 * 6)  My primary language is Chinese, English
 * 7)  Location,Chongqing, China. working time, 8:00 to 23:00 GMT+8
 * 8)  I want jump into FSC Activities with this idea: create a unified sync tool for mobile devices with fedora linux.

About my project
Functions: content support: contacts, calendar, tasks, messages, documentations(files like image, photos, music, video...) and others link mode support: data cable(USB net), Bluetooth backup and restore: the same phone supports all content backup and restore, content exchange support between different type phone. (~_~easy share content with my girl friend, I like android, she use Nokia) Software aspect: UI : unified UI style include all operations no matter device's diffs. development language: Java UI, JNI C/C++ plugins for bottom job: private sync protocol or integration with other open source solution. Software Framework
 * 1) My project name is Unified Mobile Sync.
 * 2) My project come from an idea on the Summer Coding 2010 ideas page (URL: https://fedoraproject.org/wiki/Summer_Coding_2010_ideas_-_Unified_Mobile_Sync_-_shortinfo).
 * 3) Synchronization tool for mobile devices. The creation of tool for data synchronization between mobile devices and desktop, such as contacts, calendar, schedule, tasks, messages. Today mobility is a major trend, so enabling synchronization between mobile and desktop is important for Linux desktop adoption
 * 1) timeline for project
 * 2) *  week 1~2: Find out how to upload/download to/from popular mobile devices (Android, iPhone, Symbian, PalmOS, Win Mobile, BB, etc) contacts, messages, calendars, todos, media content, etc. It includes studying what data is accessible, in what format we are to process it, what protocols-libraries-APIs should be used. As a result we should get clear understanding what and how can be synced for different devices. This task will require gathering and reading tons of technical documentation and writing code to check if documentation is really true. I can not predict what programming languages, libraries, standards and protocols you will encounter.
 * 3) *  week 3~4: Find out how to upload/download to/from popular desktop apps (Evolution, Thunderbird, KDE PIM, Outlook, etc) contacts, messages, calendars, todos, media content, etc. Once again, it includes studing what is accessible, in what format, via which channels. As a result we should get clear understanding what and how can be synced with different apps. This task will require, similarly with the previous one, reading documentation and writing tests. Once again, I can not predict what programming languages, libraries, standards and protocols you will encounter.
 * 4) *  week 5~6: Find out how to integrate mobile sync into current system infrastructure for Linux desktop (dbus, udev, PackageKit, etc) and, probably, Windows desktop (???). This task will require very good knowledge of system design.
 * 5) *  week 7~ 8: Prepare concept of GUI application and implement the first version (with placeholders instead of real sync plugins). This task will require knowledge of cross-platform programming with Python or C/C++ and GTK/Qt/etc. Knowledge of GUI design and usability will be a big advantage.
 * 6) *  week 9 ~ :Prepare the architecture based on the results of tasks #1-4. The architecture should meet the requirements [1]. Determine tasks for complete UMS implementation.


 * 1) Self-Convincing:
 * 2) * I'm a student in the graduate program of a Electronics and Communication Engineering, interested in open source,much thanks Fedora summer coding and your, giving me an opportunity to paricipate in open source world.
 * 3) * my undergraduate degree thesis is the java mobile game software development and degree is computer science and technology.I am deep in embedded software, and interested in your idea: create a uniform utility to synchronize data between popular mobile devices and desktop computer.
 * 4) * I think this is a good idea of encouraging, I will stay motivated to achieve it.