Phase 3 : It Was Like Woe
Week 1: Rails. Prior to this, we had been working in Sinatra. Our weekend assignment was the learn, and teach how ajax works in Rails. My team converted Sinatra Deaf Grandma into a single page Rails app for our study.
Over the course of the week, we converted more projects into rails. We also jumped into unit and feature testing.
I kind of fell in love with TDD / BDD. It requires thinking, planning, and discussion prior to touching the keyboard, which is super cool, and takes a lot of discipline. The tools we used were Rspec, Capybara, FactoryGirl, Database Cleaner, and Selenium WebDriver.
Our Friday assignment was building a web app. I was on an amazing team that pushed out CineHerd, a discussion forum for cinemagraph image sharing over the course of a weekend.
Week 2: On Monday, each team traded code bases with other teams. We did more exercises in refactoring, and practiced OOD JavaScript.
On Thursday, we pitched final project ideas. My idea was selected, which was awesome. Our team came to a couple of agreements that day:
Agile. We had a pin up board of index cards with user stories written on them. Cards were organized by highest priority, and every 2 hours during our stand-ups, we would reevaluate. We would also switch off tasks based on what was needed. We all were able to work on several parts of the project that way.
Testing. TDD / BDD even if it means writing less code.
Team. Acknowledge weaknesses, give space, be understanding.
My team ended up eating almost every meal together for 8 days straight. We honestly got along, really, really well. Almost every day, decisions were made that not all of us agreed on, but we stuck together. At the end of it all, we proudly did a live demo of HuemorMe. It was fantastic.
So, what is HuemorMe?
It is a web application that allows users to control their Philips Hue lights from anywhere in the world.
What the f does that mean? Pretend you just bought the Philips Hue starter pack. You install it, and realize that you can only control your amazing wireless lamps through your phone when it is connected to your local wireless network. But ah, you think it would be really cool to turn on your lights when you leave the office, so that when you get home everything is lit.
That's where the HumeorMe application comes in.
When a user creates an account, they are prompted to download a small daemon program that include a unique secret token. Ideally, this would be downloaded and run on something like a Raspberry Pi. When the daemon program starts, it continuously sends a signal to the web application, asking what the state of the light bulbs should be. At any given moment, a user can change the state of the lights on the web application, and that state on the web app will be relayed back to the daemon. The daemon will send that signal to the light bulbs, and there you have it.
What cool features does it have?
If you are accessing the website through a mobile device, you can shake your phone to generate a random color, and the lights will match it.