Week 6 — Project week 1.0

In groups of 4, we were tasked to build an app 'inspired' by Airbnb by the end of the week. I was grouped with the class clowns which made for a pretty entertaining week! On our first day, we wrote our own user stories from the specifications, and spent a long time diagramming, deciding how all our models were going to interact with each other and how our database tables should be structured.

We were pretty ambitious and wanted to use this opportunity to try a new stack, specifically using Node.js. After some research, we settled with Express as our web framework, Sequelize as our object relational mapper and Mocha as our test suite. We quickly came to the realisation that picking up so many new technologies at once was overwhelming. Since Node operates so heavily on asynchrony, we were left with a messy time trying to feature test our models, particularly because not everyone was comfortable coding in JavaScript in the first place. On Wednesday morning, in the interest of having a decent minimum viable product by the end of the week, we all swallowed our pride and decided to re-write the app in Ruby. We agreed that it was more important to allow everyone the chance to get involved with the coding and make a fair contribution, as well as keeping our sanity and well-being in check.

It's probably been my most fun week so far and I wouldn't have done it any other way. This process has shown me the importance of listening to everyone on the team, putting the needs of the 'client' specification ahead of our own need to try something new and shiny, as well as learning to walk before learning to run.

I ended up re-writing my Rock Paper Scissors game with Node and Express in my spare time, so I managed to successfully use this newfangled technology after all. Not only that, in my search for new tech to try, I stumbled across a bug in some open source software that I wasn't too scared to make a pull request for! I fixed a bug, yay.