At [work](http://www.ajc.com), we use [Basecamp](http://www.basecamphq.com/), a lot.
We use it for design projects, development projects, and projects that have no design or development components whatsoever.
Our project teams like Basecamp because of its focus on communication, but we’ve found that it lacks a really good rollup or dashboard functionality.
I’d like to have a dashboard showing the progress of just my group’s projects, marketing would want the same, etc.
For a while, our groups have all been manually updating pages on our internal wiki to get that functionality.
I’m [a lazy, dumb programmer](http://blogoscoped.com/archive/2005-08-24-n14.html), so I immediately thought why not automate this sort of thing.
Thanks to the [Basecamp API](http://developer.37signals.com/basecamp/) and the [Python wrapper](http://pypi.python.org/pypi/BasecampWrapper/0.1) I was able to whip up the [basecampreporting package](/blog/projects/basecampreporting/).
It’s still very early, and it was written on nights and weekends (hence the open-sourcing of it), so be kind when you look at the code.
It provides a higher-level wrapper around the Basecamp API and injects some [Scrum][scrum] concepts onto projects like sprints and backlogs.
For example, a sprint is just a todo list that contains the word “Sprint #{integer}” in it. It can guess that the current sprint is the sprint with the lowest integer that still has unchecked items on it.
The next logical step was to build a [Django-powered ](http://djangoproject.com) Web application that used this library to display summary information on projects and allowed folks to tag and organize the projects into various dashboards.
Thus was born [django-baseboard](/blog/projects/django-baseboard/), which is even greener and rawer than [basecampreporting](/blog/projects/basecampreporting/). It’s name comes from it’s role as Base(camp driven dash)boards.
I have to give a big thanks to Jacob Kaplan-Moss for his [writeup on Django and buildout](http://jacobian.org/writing/django-apps-with-buildout/) as I never would have turned these into properly packaged applications without it!
[scrum]: http://en.wikipedia.org/wiki/Scrum_(development)