Inside PangoScrum

January 25th, 2010 by vicente.mundim Leave a reply »

I always like to know how something was made, what was used to build, etc. Maybe this is because I’m an engineer, but I just like to see what’s under the hood.

Many companies find that revealing what technologies were used for a site makes it more vulnerable to attacks. Well if that was the case then github, basecamp and many other web applications would be hot spots for hack attempts. For me, if people attempt to hack your application, whether they know what technologies were used or not, its your job to make sure you are well protected, and that those technologies are reliable.

Fortunately for us, PangoScrum uses widely used frameworks and plugins such as Rails and jQuery so this is not an issue for us.

Under the hood of PangoScrum

So like I said we’ve made PangoScrum in Rails because it is the best web framework we’ve know. It gives us a lot of functionality in a simple and elegant way. It comes with a bunch of supporting applications and frameworks like RSpec, Cucumber and Capistrano.

We used authlogic for authentication, since it was more simple and clean then restful_authentication. Also for validation of dates we used validate_timeliness.

Some of the plugins we use are act_as_commentable for comments, jrails for integrating jQuery with rails view helpers, rails-widgets for making tabs and navigation, http_accept_language to identify accept language of users and context_tooltip for displaying tooltips. Our controllers were very simplified by resource_controller. For minifying of javascript and css we’ve used asset_packager.

In the beginning we were not adept of TDD so didn’t write many tests, only for models. We’ve found later that not having tests was a bad idea. Then came RSpec and writing tests was not painful anymore. So we started writing more tests for what we already had, and then we found ourselves making BDD and having lots of fun. Every new feature would only be added after tests were written and this made us confident that we were delivering good and working software.

Now we starting to use cucumber as well with webrat and selenium. Since we have lots of javascript selenium tests are used more widely. But we use webrat to test for simple things like navigation and other non-javascript features.

The future of PangoScrum

We are very ansious about Rails 3. It will be awsome to migrate PangoScrum to Rails 3, even knowing it will be hard. Since we have lots of tests, we wouldn’t have to worry a lot.

Also we are very inclined to use some non SQL database such as MongoDB or CouchDB. Both seems very mature and more fast and simple than MySQL which is the current database server we are using. We hope that when the time comes to make this migration MongoMapper and CouchRest are using ActiveModel, so we have a common interface to ActiveRecord.

Expect more to come, we are willing to keep improving PangoScrum to better suit our users need!


Leave a Reply

Spam Protection by WP-SpamFree