← Back to team overview

ubuntuone-users team mailing list archive

Common format for storing tasks in couchdb

 

Hi,

Bellow is a suggestion for a task format that can be used by apps using
desktopcouch or couchdb as backend.

I tried to used a common denominator for Evolution, Tasks, Tasque (eds
based), GTG and Tracks (a ruby on rails webapp).

In Evolution we have status and priority. Since they have arbitrary
value I found it hard to put them as standard fields, as first we need
to define some convention for these fields.

There is also percentage field. I was thinking we can replace "done"
with "percentage" and instead of true and false we can have 100 and 0.
What do you think?

For GTG I consider subtask (child/parent) and tags specific features.

For Tracks and Getting things done methodology we also have the notion
of "contexts". A task can be in the inbox, next action, or to be done
when on phone, at home or at office. This is somehow like a more generic
status field, but I think this is a specific feature.
There is also a project field.
Maybe we can define them in the "gtd" field for
"application_annotations", but since they will store contexts and
projects id, we need also to define a way for storing contexts and
projects.

For a bit of backround, I'm working at something that started as a
desktop client for Tracks and now I'm switching to couchdb [1].

I know some users of various other task apps complains their tasks are
not displayed in the clock applet. Maybe with couchdb support for eds we
can make this happens.


Here it is:

{
    "_id": "id_of_this_document", # internal to CouchDB
    "_rev": "revision_for_this_document", #internal to CouchDB
    "record_type":
"http://www.freedesktop.org/wiki/Specifications/desktopcouch/task";,
    "record_type_version": "1.0",
    "title": "<task's title>",
    "content": "<task notes or aditional text>",
    "create_date": "<creation date in UTC>",
    "last_change_date": "<last modification date, in UTC>",
    "start_date": "<start date, in UTC>",
    "due_date": "<due date, in UTC>",
    "done_date": "<date when this task was finalized, in UTC>",
    "percentage": integer, #100 if this task is completed

    "application_annotations": {
        "Evolution": {
            ...stuff specific to applications, nobody should rely on
these...
        }
    }
}

[1] https://launchpad.net/lucruri

-- 
Adi Roiban