Making GTG talk fluently to more Backends

Madhu

Short description: Getting things Gnome, at present, is a simple task manager, with added multiple backend support for other online and offline apps such as Twitter, RTM, GNote, etc. My project focuses on adding diverse web based backends for different use cases to GTG. Specifically, I’ll be adding support for Google Calender, Tracks (web based, self hosted GTD application), Github Issues, Bitbucket Issues and Redmine.

Additional info: https://spreadsheets.google.com/ccc?key=0AihLK9...

What is the ultimate goal of your proposal?

The ultimate goal of this proposal is to make it easier to carry tasks from different sources wherever you go. Google Calender for events and event reminders, Basecamp/Github/Bitbucket/Redmine for bugs/tasks assigned to you that you should constantly be reminded about, and Tracks for those who try to make their GTD lists follow them everywhere.

What components/modules will it touch/change or create?

The deliverables at the end of the project are:

  1. Backend for Google Calendar
  2. Backend for Tracks
  3. Backend for Basecamp
  4. Backend for Github issues
  5. Backend for BitBucket issues
  6. Backend for Redmine.
  7. Documentation on writing backends

Backend for Google Calender

Google Calender keeps track of events. Sync GTG with GCal, and all your events with the tags you want, will appear in GTG. Say a dear one’s birthday in the next week shows up in GTG priorly. Ample time to get her a gift isn’t it? The Google Calender API enables this GTG <-> GCal sync.

Backend for Tracks

Tracks is a web based application implementing the Getting Things Done methodology, and is built on Ruby on Rails. Tasks are mapped as to dos in tracks. The mapping is done using Rest API, that uses simple HTTP requests. When the GTG user enables Tracks sync, your todos will surface in GTG.

Backend for Basecamp

Basecamp is an extensively used online project collaboration tool. Support for Basecamp to-do-lists in GTG will be added, using the REST API.

Backend for Redmine & Github/BitBucket issues:

Issue tracking is a necessary part of most people’s lives (most developers atleast). While GTG has a backend for Launchpad already, adding support for other popular issue tracking systems would increase usage of GTG.

I have updated the task semantics for the above backends here.

Documentation for Writing Backends

Documentation and samples to make it easier for other people to write backends.

What benefits does it have for GNOME and its community?

  • A more versatile GTG, with extensive online sync support will increase the number of people who can use GTG.
  • Documentation on writing backends - makes future extension easy.

Why you'd like to complete this particular project?

I use GTG to organize my personal and work life. To improvise it to keep track of Google Calender events, and support issue tracking seems to me like something fun and interesting to do.

How do you plan to achieve completion of your project?

Gannt Chart of the Schedule

  • Up to May 23: Familiarize myself with the GTG code and the backend APIs.
  • Target 1 (2 weeks): Write backend for Google Calender.
  • Code CleanUp Week (1 week): Clean up code, write documentation.
  • Target 2 (1 week): Write backend for Tracks.
  • Code CleanUp Week (1 week): Clean up code, write documentation.
  • Target 3: (1 week): Write backend for Redmine.
  • Target 4: (1 week): Write backend for Basecamp.
  • Target 5: (2 weeks): Write backend for Github and BitBucket issues
  • Code CleanUp Week (1 week): Final Code CleanUp. Write Documentation.
  • Buffer Period (2 weeks): Buffer to account for Murphy’s Law

What will showable at mid-term?

The Google Calender and Tracks backend with integration and corresponding documentation.

Why do you think you are the best person to work on this project?

Though new to world of open-source, I have the thirst to learn, the passion to write code and an urge to make a marked difference in all my endeavours.. I am also avid and systematic at documentation. Also, it feels amazing when other people benefit by work I do - and I think I’m already addicted to that feeling :)

What are your past experiences (if any) with the open source world?

Starting with fledgling C and C++ programs in high school, regularly topping the class, I moved on to Java at college, learning Python and Vala along the way and went on to become an Oracle Certified Java Programmer. An ardour for Open source was relatively new found as the 32 hour startup held at SSN College of Engineering at Chennai, sparked my interest. Hacking alongside with 40 others I created Kreate, a double opt-in facebook app.

I have also contributed one patch to GTG.

Why are you interested in improving GNOME?

Ever since I started using Linux, I have been a GNOME user. Coming from Windows land, I really liked the simplicity and stability of GNOME. The community was also very friendly. When I contributed my first patch - and it was accepted very fast - the realization that I contributed to software that possibly millions of other people would be using - no matter how small the contribution is - hit me hard. Contributing to something bigger than myself feels incredible :)

Patch I’ve written

https://bugs.launchpad.net/gtg/+bug/676088

About Me:

A 20 year old from Chennai, India, pursuing my B.Tech in Information Technology at a top class institute, the SSN College Of Engineering. My interests include programming, books, social networking, entrepreneurship and social service. I head the documentation team at the Entrepreneurship Development Cell at my college. I have a passion to organize events, and played a key role in making TEDxSSN happen, which was a blockbuster hit. My skill set includes, programming languages - C, C++, Python, Vala, Java (SCJP) , scripting languages - JS, jQuery, and database technologies - Oracle and MySql.