User:Dash1291/GSoC 2012 Application

= Overview =

About Realtime Collaboration on Visual Editor
Realtime collaboration on Visual Editor would allow Visual Editor to be used much like Etherpad, Google Wave, and similar other collaborative editors. As of now, the realtime collaboration project is to be implemented in two phases.

Phase 1
This phase features one client as an editor in an editing session and other clients connected to that editing session would only see the changes made to the page by the editor. Editing sessions could be passed to other clients for them to edit. Once prototyped, this would be much like a 'read-only' collaborative editing tool for the clients connected to an editing session except for one client who can write to the editing session and will provide an initial codebase for Phase 2 to be implemented on.

Phase 2
With initial codebase done in Phase 1, this would add the provision of editing by multiple clients connected to the same editing session. Everyone can edit while seeing changes done by others. This would have to incorporate much complicated client and incoming transactions handling. Measures to consolidate concurrent transactions must also be implemented. Hence, this phase targets a complete realtime collaborative editor like Etherpad or Google Wave.

About this Project
This project aims at implementing Phase 1 of the Realtime Collaboration project which would include -


 * 1) Collaboration server to serve editing sessions to new clients, and changes to the connected clients.
 * 2) Client module(s) for communicating with the collaboration server.

Scope of Work

 * 1) Collaboration server implemented in Node.js.
 * 2) * Use parser to convert wikitext into a DOM for document transport and linear model to store the server's document state.
 * 3) * Integration of VE modules to handle the document model and apply incoming transactions to the document model.
 * 4) * Implement Socket.IO API for client/server communication.
 * 5) Client adapter which hooks into the editing surface for translating local document changes to the server.
 * 6) * Initiate and maintain the editing session with the collaboration server.
 * 7) * Respond to the incoming transactions from the server by applying them to the local document.
 * 8) * Bind its funtionality against the server's Socker.IO API.

= About Me = I am Ashish Dubey, a B.Tech, Computer Science Engineering student, in JIIT, Noida, India. I'm mostly interested in web development using PHP, JavaScript, and Python.

Contact/Working Info
Email: ashish.dubey91@gmail.com

IRC nick: ashish_d

Timezone: UTC+5.5(India)

Working hours: 11 am to 2 am until July. 5 pm till 2 am after July.

Past Open Source Experience
I'm an active member of Open Source Developer's Club in my college. Everything I develop, large or small, is open source and whatever I use to develop is open source. Among the very good open source things I've worked with while development and loved are, MediaWiki, WordPress, Django, Node.js and Twisted. As for the contributions, I've also attended a few open source meetups including PyCon India 2011, Wikipedia Hackathon in Pune 2012 and few local meetups about Drupal, Firefox, etc.
 * Commiter to MediaWiki, developed an extension and contributed a patch to the visual editor project.
 * I've contributed to the Mozilla's AMO project with two addons in their addons respository and also contributed a few patches to their website's infrastructure that is based on Django.
 * Contributed a plugin to WordPress plugin repository.