User:Dash1291/GSoC Demo

From mediawiki.org
Jump to navigation Jump to search

This is a little dirty demo of the initial stage of Realtime Collaboration project which I'm hoping to work on this summer as my GSoC project.

See User:Dash1291/GSoC_2012_Application

About the Demo[edit]

The demo is a raw implementation of the collaboration server based on Node.js and a client adapter both coupled with an older revision of VisualEditor(ES days) featuring single editing capability and others can view changes in realtime.

Few Details[edit]

Data model synthesis

The collaboration server uses the VE modules, and mimics the client editor while storing the data model and applying new transactions to it. The data model is an empty document on server initialization and the revised data model persists until the server is taken down.

Communication

The server/client interactions are bound by Socket.IO API. With the lack of wide browser support for Websockets, Socket.IO with its fallback strategy works well.

Editing sessions

For the demo, the client in control of editing is the one who initiates an editing session first when no other client is connected. Passing of the editing control is not supported in the demo yet.

Fallacies

  1. Limited and not tested. Its all based on the experiments that I've been doing for the project and evolved through the process of me trying to work out some fundamental parts of the project.
  2. Inconsistent on Firefox. Tested well on Google Chrome 16.0.912.77.
  3. Not the best looking.

Link and code[edit]

Link to the demo

Code GitHub