Projects/Summer of Code/2007/Projects/KOffice collaborative editing
NEW: KOffice -- collaborative editing
Name: Igor Stepin
Mentor: Cyrille Berger
I plan to implement real-time collaborative editing for KWord. This would allow the owner of the document to invite people via IM or other ways to work with him/her on the document. I'm planning implementation of KWord support only (support of other applications will be also implemented, after work on KWord is complete).
What is collaborative editor?
From Wikipedia: A collaborative editor is a software application that allows several people to edit a computer file using different computers. There are two types of collaborative editors, real-time and non-real-time. Real-time collaborative editors allow users to edit the same file at anytime, including editing at the same time. Non-real-time collaborative editors do not allow editing of the same file at the same time. Non-real-time collaborative editors are similar to revision control systems.
This is the list of collaboration functionality that should be implemented.
- Publish local documents.
- Session initiation via IM or zeroconf.
- Collaborative plain-text editing in a shared document.
- Possible collaborative reach-text (fonts, styles, etc.) editing in a shared document.
- Disconnect users.
- Investigate current implementations. Write prototypes for some of them. Evaluate at least libobby, MateEdit, and DrawPile. Choose base for implementation. (1 week)
- Define draft of interfaces for the collaboration API. Make prototype of UI. Show them to mentor and KOffice developers. (1 week)
- Write unit tests for API. Configure test environment for KWord (to speed-up testing). (0,5 week)
- Implementation of main features. Integration with KWord. (3 weeks)
- Bug fixes and reserved time. (3 weeks)
What will not be done
- Only integration with KWord is planned.
- Probably, reach-text communication (different fonts and paragraph
styles) will not be implemented.
- Specific techniques for NAT traversal or UPnP/PMP-enabled firewall/router configuration will not be implemented.
- Images, tables and other complex 'objects' in the document will not be supported.
Link to the Google's page of project: http://code.google.com/soc/kde/appinfo.html?csaid=1F1FBA0ECFDF0877
Link to the detailed description: http://www.stepin.name/soc2007/
Link to the project's blog: http://www.stepin.name/category/soc/