Basecamp and Joomla integration anyone?

Basecamp LogoWe PICnetters use Basecamp for project management and when we learned they had released an API and saw the interesting things people were doing with it, we thought, "hey let's integrate". Not because it's cool (though the closer we get to Web 2.0 tools, the cooler we all seem here around the office), but because we saw a need, at least internally, for some extended functionality: easy time tracking and reporting.

Basecamp allows time tracking and it is very nice when checking off a task to record how many hours you spent getting it done. But sometimes we get so engrossed in our work we forget when we started. So, we built a sort of stop-watch application which allows us to punch-in, punch-out, write up a description then send it off to Basecamp.

Another pet peeve of ours is when we run over the number of hours we've dedicated to a project, and with several people contributing time to a project that can happen easily if the time isn't closely monitored. So next up on the integration effort is to develop a warning system which will alert project managers when we're nearing that limit.

We will be sharing our efforts with the Joomla community soon, as open source of course. If you are interested, please check back and if you have any feature requests let us know and we'll do our best. We would love to hear the community's thoughts. Or if you are a developer and you would like to take a crack at developing on your own, here are some tips and tricks:

  1. You can get a reference to the API here: Basecamp API
  2. Follow some discussion here: Basecamp API Forum
  3. There are PHP wrappers for the API out there if you don't want to attempt writing your own. A Google search will most likely turn up something.
  4. As it is now, the API isn't as well developed as others. Pretty much every feature on Basecamp is built into the API but expect your application to do most of the heavy lifting like filtering and sorting data. Oh and look out for the hyphens in the variable names of returned data. PHP isn't a fan of those so you will probably need to scrub your data before using it.