Inkscape + Inkboard project schedule
In keeping with the usual unpredictability of software engineering projects, this schedule is very coarse, and time estimates overlap. Granularity will increase as progress is made and feedback is received.
Week 0 - Week 1 (pre-June 24 - July 2)
- Enhance familiarity with Inkboard and current Inkscape code. [Inkboard code: familiar, Inkscape code: learning more as I integrate.]
- Enhance familiarity with the Inkboard state machine and protocol. [Done; will return to this as necessary.]
- Learn about the class structure of Inkboard and how it integrates into Inkscape. [Done; will return to this as necessary.]
Week 1 - Week 3/4 (July 2 - July 16 / July 23)
- Begin and finish integration of current Inkboard codebase into Inkscape CVS. [Almost done; fixing a few last major bugs.]
- Integrate UI elements. [Done.]
- Integrate Jabber server communication code. [Done.]
- Integrate client communication code. [Done.]
- Integrate object listeners. [Almost done; need to implement notifyChildOrderChanged.]
- Integrate send and receive code. [Done.]
Week 3 - Week 7/8/End (July 16 - August 13/20 / September 1)
- Work on stabilization and bug-fixing of integrated Inkboard code. [Whoops...introduced a couple bugs, most likely due to incorrect GC usage. Fixing.]
(in order of importance, to be juggled as necessary):
- Complete user -> chatroom whiteboard support. [Implemented, but highly unstable at this point.]
- UI enhancements.
- Session file support. [Working on it.]
- Streamable document synchronization: i.e. change the current protocol and implementation to allow initial documents to be streamed, as opposed to the current method where the document is built into one huge message and transmitted. (The current system makes synchronization of large SVGs rather painful.) [Partially done. Changes are streamed, but only for zero (root) and first-level child nodes in the document -- deeper nodes are transmitted as large message chunks attached to first-level children. The current recursive new object message construction architecture makes it difficult to go any further without extensive work in both sending and receiving routines.]
- Add rudimentary chat facility based on Jabber.
- Complete Inkboard protocol specification. [In progress; I hope to be able to pass it off to Ted and Peter Saint-Andre when it's in good enough condition.]