June 28, 2012
Mockups of Collaborative GTG
You might ask what I was doing with Collaborative GTG project during weeks #03 — #05. I spent this time by drawing mockups, discussing them and coding first prototypes.
One of my goals is to seamlessly integrate collaboration in GTG and don’t change GTG too much. I wrote down all suitable usecases and then design mockups for them. The feedback for the first version helped lot and resulted in more simplified mockups.
You can share tasks assigned to a certain tag using tag editor. Bertrand Rousseau redesigned the dialog in the recent past and it looks like this:

Tag editor in the development version of GTG
I added two widget for setting sharing. You can choose if you want to share a tag and with whom. The widget for contact list will be filled by your XMPP rooster. I had a discussion with Guillaume Desmottes whose GSoC student Laurent C works on IM integration within GNOME apps. GTG might use the library for the contact list in future.

Tag editor with sharing options
A new field Assign to is introduced to GTG editor. When you share a task with your friends, it is a good idea to assign it to somebody. Everybody knows what is already taken or who procrastinate with his or her tasks. In the field you can choose from people with whom you share the task.

Assign a task to somebody
Sharing doesn’t have only advantages
Personally important use case for Collaborative GTG is being offline. You travel home, you are at the conference with bad wifi or simply take a crazy no Internet challenge. When you are back online, there might be collisions between your edits and edits made by teammates. GTG has to deal with the same problems as git, bazaar or wikis — merge conflicts.
With the help of network manager, GTG can figures out that you are back online, fetch the latest tasks, and show you a dialog like this one for resolving conflicts:

You can choose which version is appropriate or edit your local version. I haven’t implemented this mockup yet.
What’s next?
Make those dialogs live. Fetch your friends, their avatars from XMPP rooster and put them into widgets.