Milkshake/jQuery.IME extensions for Firefox and Chrome

Identity
Name: Praveen Singh Email: prageck@gmail.com Project title: jQuery.IME extensions for Firefox and Chrome

Contact/working info
Timezone: UTC+5:30 (IST - India) Typical working hours: 10 am to 3 am until July, 6pm to 3 am after July IRC or IM networks/handle(s): Prageck

Project summary
jQuery Input method editor is a collection of more than 150 input methods across several languages. It is the jQuery version of the input method tool, Narayam, which is used across several Wikimedia projects. Currently jQuery.IME is provided from the Wikimedia servers.

This project mainly aims at : Having the jQuery.IME installed as a plugin in the browser itself, users would be able to use it in any website.
 * porting jQuery.IME to Firefox and Chrome extensions
 * providing on demand loading of input methods for different languages rather than injecting all 150+ input methods to a web page.
 * providing a mechanism to update the extensions from the upstream project with minimal manual effort

Required deliverables

 * Google Chrome extension
 * Port the jQuery.IME code to Chrome extension in accordance with Chrome extension architecture and workflows


 * Mozilla Firefox extension
 * Port the jQuery.IME code to Firefox extension in accordance with Firefox extension architecture and workflows


 * Implement on demand loading of input methods for different languages
 * Implement a mechanism to update the extensions from the upstream project with minimal manual effort
 * Include user preferences/options that would get persisted in the browser
 * Getting the extensions reviewed and published
 * Writing unit tests for the added functionality
 * Full Documentation

Project Schedule

 * Community bonding period (2-3 weeks)
 * Study jQuery.IME code in detail and get familiar with the overall coding style and structure.
 * Study Google Chrome extension architecture and workflow in detail
 * Study Firefox extension architecture and workflow in detail
 * Discuss proposed code structure and UI mock-ups with the mentor and the community.
 * Fix certain open issues to gain a deeper understanding of the code.


 * 1 week
 * Port jQuery.IME to Google Chrome extension according to the discussed mock-ups


 * 1 week
 * Implement on demand loading of input methods
 * Implement update mechanism to synchronize the extension with the upstream project


 * 1 week
 * Implement persistent user preferences/settings
 * Port jQuery.IME to Firefox extension


 * 1 week
 * Write unit tests using QUnit


 * 4 weeks
 * Code review, testing, bug fixes and documentation.

About me
I am Praveen Singh, a final year Computer Science graduate student at Jaypee Institute of Information Technology, India. I have been doing web development for the last 2 years. I have good understanding of javascript, jQuery, CSS and php. I have prior experience in developing browser extensions.

Participation
During my work hours, I am always logged on to IRC and can be easily reached at #mediawiki, #wikimedia-dev and #mediawiki-i18n.

I would discuss my progress using regular mails to the mentor. I will communicate with the community over the mailing list (Wikitech-I) for any feedback, suggestions and queries.

All the code will be hosted on Github, so that anyone can easily track my progress and give feedback.