I spent a couple of hours this weekend putting together an appengine app to hook into the fixx api. I chose appengine for two reasons: First off, its python and i’m aching to do some python. Our website runs with python and although I put most of the frontend together, I’ve had little say or involvement in the backend. Its all django based which is sweet, but its too far developed now for it to necessitate my input. Secondly, I’m loving the cloud at the minute. google appengine has some sweet infrastructure in place that I really wanted to start tinkering with and as its a bare bones API, it gives me a lot of scope to make something new.
Anyway.. ..So I spent a bit of time a few months back putting together a php wrapper for fixx 1.9 and I’ve only used it in a few places to pull out some arbitrary data into my website but I’ve never really touched it since. It was more of a “Can I Do This?” kind of project. However, reading through the appengine API, the XMPP services immediately caught my eye.
It took about two hours to setup a google app, configure the routes using the google web framework, knock together a few templates and port enough of the fixx API to get out the data I needed to have a prototype notification system in place. Once I had the app pulling data from fixx, pushing it out using google XMPP api was a breeze.
The result? A sweet little chat bot that notifies you when issues have been assigned to you ;)
The current version is a very early prototype, is bound to break at some point and needs a lot of love frontend but still, its possible to register your copy of fixx using a public domain name and allow anybody for that domain to sign in and subscribe to notifications.
The roadmap is a bit up in the air at the minute but the long term goal is to have a bot that will keep you informed of changes to fixx and allow you to pull and push information to and from your fixx instance. The long term goal is to allow commands to be fired at it, for example :
/comment 238 I’ve finished working on this * To comment on an issue *
or
/log 838 2:40 added some awesomeness * To log time *
or
/resolve 882 duplicate This issue is a duplicate
..You get the idea ;)
When I’ve got a better idea of the features I’m going to add, I’ll publish a roadmap and drop the code on a google repository. For now, if your’e interested let me know and I’ll make a copy available for download.