Friday, October 21, 2011

Knockout.js, AmplifyJS, FubuMVC and RavenDB

Working on a project for Street Theatre Company at Nashville Give Camp with Chris MeadowsJim Cowart and Alex Robson. I get to play with lots of nifty frameworks. We're using Knockout.js to bind the html view to the JavaScript object model. The AmplifyJS publish and subscribe (Pub/Sub) library allows us to wire up client-side model events to the Request layer. FubuMVC is a front controller pattern that we're using to serve up the model through RESTful endpoints.

Alex was the primary resource for data access and spent many hours working with RavenDB and FubuMVC. "Raven was huge", Alex said. "It made storage trivial. I loved how Fubu enabled us to build something that was test-able. I also think that Amplify and KO made it possible to deliver a UI that the customer (and a few devs) liked." We did encounter problems with FubuMVC handling REST and AmplifyJS receiving 500 response codes, but overall it worked well.

Of course, there was more to this project than technology. Jaime Janiszewski and Cathy Street from Street Theatre Company made themselves available all weekend and did a great job at working with us on what features were most important to them and could be accomplished during the weekend. "I was delighted with how easy it was to talk through things with Cathy and Jaime and would honestly request the opportunity to do more work for them in the future if given the chance," said Alex. Jim commented, "I loved interacting with a knowledgeable, appreciative and exciting end user."
"I loved GiveCamp, it was a great experience and we learned so much through the experience that we can't wait until the next one."
-Alex Robson

In the end, Give Camp was a great success. The charities got some great websites and the developers/designers had a blast. Many thanks to the organizers and sponsors who made it possible.