SynchroEdit is a browser-based multiuser editor that allows users to edit simultaneously from different locations, making it a same-time, different-place groupware.
To clarify the multi-user experience, the editor window clearly depicts every user's changes in a specific color and also marks where each user is currently editing with a colored flag listing the user's name. This enables all users to easily keep track of who is making which change.
SynchroEdit can be used in a variety of ways where concurrent, synchronous editing of a single document is useful. This includes Collaborative Editing, Teleconferencing Notes, Wiki Editing, Pair/XP Programming, Agile Development, Teaching Aids, and Documentation Writing. With SynchroEdit, two or more people can edit a document at the same time, fine-tuning specific wordings and phrases. Members of a teleconference can write about their call, correcting or expanding upon notes made by other call members, thus supporting a true backchannel to a live conference call. Editors can edit popular or heavily edited Wiki pages at the same time, instead of having to wait for their colleagues to complete their work. Two or more programmers or web developers can write code at the same time. Teachers can provide dynamic syllabi and lecture notes, and students can take shared class notes together. Authors with a variety of expertise can come together to write a coherent document on a specific topic.
The SynchroEdit engine consists of three parts: The Request Server, The Sync Server, and The Sync Client. The Request Server is the initial script that a user connects to in order to initiate a synchronous edit. Current samples are written in PHP and Perl, with a Kwiki Plugin implementation also planned. The Sync Server is a Java-based server app that talks with the Request Server and Sync Client and mediates the synchronous editing. The Sync Client is a Javascript archive which is loaded into a user's browser. It provides the interface for the actual editing and can support either WYSIWYG or plain editing, as is appropriate for the file type.
SynchroEdit is built around W3C's Document Object Module (DOM). It ensures that user modifications do not interfere with each other by keeping track of where each user is located in the DOM tree, by node. User changes to the document are tracked using event-handlers on the DOM mutation events. When data is appended to the DOM tree, unaffected nodes remain as they are, which allows users to safely continue editing even if there is lag in updates.
With its solid technical base and intuitive user interface, SynchroEdit is the perfect tool for collaborative editing. The latest release of SynchroEdit includes a more standardized codebase, administration, and improved interoperability (ESPI and response service).
Version 0.5: N/A