Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Table of Contents
JCurlShotPlanner should become a collaborative real time editing tool. Every editing action (change to the underlying datamodel) is replicated to all participating users. Including "file open / reset" and the like - though vetoable.
- use a Jabber/XMPP chat session to transport real text communication and graphical changes
- hook this communication layer into the Undo
- avoid restrictive locking whenever possible
Let's assume Bob and Sally want to discuss some curling tactics, then
- Bob launches JCurlShotPlanner
- Bob configures his jabber account and connects the jabber server
- Bob starts a new file
- Sally launches JCurlShotPlanner
- Sally configures her jabber account and connects the jabber server
- Bob sees Sally in his presence list
- Sally invites Bob to join a "session"
- Bob sees the invitation (dialog) and a warning that he'd loose the pending file changes.
- Bob chooses to save this current file and then accept the conversation.
- Sally's current file gets wired to Bob
- both edit concurrently.
- dragged objects are locked on "startdrag" (first change) and unlocked on drop.
- undo/redo operations are pushed as new edits ontop the other's undo stack
- some housekeeping dialogs required (jabber account and session management, presence display)
- chat text input & output display required
- display current participants (most important for multi-user chats)
- display a edit-history labelled with originating user
- mark the locked objects somehow (use a enabled property? Or does this need to be personalised? Something like a nullable lockholder property?)
- add a "force break lock" command
- Floor control
- Paint Chat
- List of collaborative software
- Collaborative real-time editor
- Collaborative software
- Collaborative writing
- Collaborative editing
- a collaborative editor
- Computer-supported collaboration
- Mobile HCI
- LaTeX/Collaborative Writing of LaTeX Documens
- Consistency maintenance in real-time collaborative graphics editing systems<bibref>Sun2002</bibref>
- Undoing any operation in collaborative graphics editing systems<bibref>Chen2001</bibref>
- Undo any operation at any time in group editors<bibref>Sun2000</bibref>
- A framework for undoing actions in collaborative systems<bibref>Prakash1994</bibref>
- Multi-User Undo/Redo<bibref>Choudhary1992</bibref>
- Enable collaborative graphics editing in mobile environment<bibref>Jiang2005</bibref>