Home > strawbug

strawbug

Strawbug is a project mainly written in PHP, it's free.

Strawman Bug Tracker

Strawbug: The straw man of bug tracking systems!

This is a demonstration project, so many parts of it are not present. Here are the bad parts:

  1. It is optimized for extensibility, with little though given to raw performance. This is an intentional decision. As bug tracking systems aren't generally used by large groups, scalability is seldom an issue. That said, proper tuning of CakePHP's caching system would probably make significant improvements. I have taken care to construct the data models in a way that performs reasonably well. I would expect to see performance degredation with a large userbase, but less so with a large dataset.

  2. Email functionality isn't implemented. I'd add an email layout, perhaps collect a text vs html preference from the user, and send messages on updates and status changes to owned bugs.

  3. Most of the pages aren't particularly styled. I spent some time on the main bug view.

  4. Interface tweaks are necessary to make the bug update workflow more usable. For example, you should be able to change the bug status when adding a note.

  5. Change tracking could be improved. Status updates are tracked, but nothing else is.

I've entered bugs into the system for each of these things, so there's some sample data in there.

Here are some good parts that might not be obvious:

  1. It's really easy and quick to add new features, change form validation, etc. I stuck with CakePHP's ORM system for database access, rather than writing queries by hand, and that gets a lot of stuff for free. The pagination is an example of that.

  2. Permissions are managed using Cake's ACL system, and control is pretty fine-grained. Clearly this won't be necessary for a bug tracker that nobody will ever use, but for a real intranet application fine-grained permission control is handy. There are existing plugins that handle ACL editing over the web, so it wouldn't be necessary to build interface for that.

Previous:Tag