Tarefas es un cliente de escritorio para aplicar la metodología de clasificación y administración de tareas GTD (Get the Things Done)
descrita por David Allen.
La utilización de GTD permite mejorar la eficiencia en nuestro día a día, manteniendo nuestros objetivos estructurados y ordenados
temporalmente agrupándolos en sus diferentes contextos y prioridades. El objetivo es tener una visión clara y simplificada de nuestro arbol
de tareas personal.
Tarefas esta siendo desarrollado utilizando la plataforma de desarrollo GNOME. Uno de los objetivos del proyecto es hacerlo disponible a las principales plataformas de GNOME MOBILE como son Maemo y Moblin.
Tarefas se apoya sobre el backend de Remember de Milk (RTM). Sin embargo, gracias a cómo está diseñado el programa, es posible añadir
otros backends sin demasiada dificultades.
Tarefas está disponible en http://tarefas.mastersoftwarelibre.org
Arquitectura
Tarefas se ha diseñado en base a una arquitectura cliente-servidor. El cliente (interfaz gráfica) y el demonio (que implementa la
comunicación con los backends web) son totalmente independientes y se comunican mediante D-BUS. Mandamos un diagrama de la arquitectura como adjunto.
Demonio:
Actualmente sólo está disponible como backend el servicio online Remember The Milk. Para ello hemos utilizado la API "REST" [1] (en realidad no cumple todo lo especificado para los APIs REST) que la página pone a nuestra disposición. Para hacer más fácil la comunicacion con los servidores de RTM, nos hemos servido de uno de los "API Kits" que nos proporcionan los desarrolladores de RTM. Hemos elegido el que está escrito en C [2], pero existen otros escritos en C#, Java, Perl, Python, Ruby o Lisp.
Nuestro API kit utiliza las librerías glib2, curl y openssl. Para el procesado de las respuestas del servidor (XML) hemos utilizado la
librería libxml.
El demonio ofrece un API abstracta por dbus que puede ser utilizada por cualquier aplicación del desktop, además del cliente que nosotros
hemos desarrollado.
Cliente:
El Cliente GNOME desarrollado se ha implementado en C utilizando el toolkit gráfico GTK+. La arquitectura permite la integración con otros clientes gráficos o aplicaciones de terceros gracias a la utilización de d-bus.
Para la construcción del programa hemos utilizado las herramientas típicas de GNU/GNOME: las autotools. También hemos utilizado gtk-doc
para la documentación y gettext para la internacionalización.
[1] http://www.rememberthemilk.com/services/api/
[2] http://www.rememberthemilk.com/services/api/kits/c/
Trabajo Colaborativo
El proyecto tarefas surge del trabajo realizado por los alumnos del II Master Software Libre de Caixanova con la premisa de desarrollar por parte de los mismos las aptitudes y capacidades propias de un entorno de desarrollo colaborativo propio de las comunidades de software libre.
Se ha creado un proyecto entre los integrantes del curso empleando diferentes herramientas características de las comunidades libres como son las más que conocidas listas de correo, repositorio git, canal IRC y WIKI de proyecto.
Ejemplo de funcionamiento: Añadir una lista de tareas:
1 . Desde el cliente se hace un llmada al demonio mediante la api de D-BUS (dbus-glib):
dbus_g_proxy_call (remote_object, "ListAdd", &error,
G_TYPE_STRING, "list_name", G_TYPE_STRING, "list_filter",
G_TYPE_INVALID,
G_TYPE_STRING, &list_id,
G_TYPE_INVALID)
2. El demonio procesa la petición en la funcion "gtd_rtm_list_add": se construye la petición con los datos necesarios y se envía a los servidores de RTM mediante la API en C que nos ofrecen los desarrolladores de RTM:
rtm_api_param_add (priv->rtm, "name", list_name);
response = rtm_api_call_authenticated_method (priv->rtm, "rtm.lists.add");
3. A continuación el demonio procesa la respuesta (generalmente extrae valores del xml recibido con la ayuda de la libreria libxml2) y rellena los parámetros que necesita el cliente ("list_id" en este caso).
4. El cliente recibe los parámetros necesarios rellenados por el demonio.