Good pals and BCG peers Kyle Zarazan and John Resman wanted to do a hackathon. So the three of us thought and fought and eventually wrestled an idea for Rails Rumble 2013. Over 48 hours, we converted our idea into an actual web app - Yaaak, a proximity-based chat app.
When you, a yak, send out a "grunt" from the home page, you automatically join the nearest herd within a five mile radius. As more yaks nearby grunt, the herd radius grows bigger and bigger. And if no one is within that five mile radius, a new herd is created for you.
For example, if I grunt from Lawrence and no one is around, a five mile radius is created around me. If another yak grunts from three miles away, he joins my herd and then our herd radius becomes seven miles wide. If another yak grunts from two miles away from him, the herd radius grows to 10 miles wide. So, in theory, I could talk to someone in Chicago if there were enough yaks simultaneously grunting through Illinois.
Hands down, choosing the verbiage was the best part of the project.
We used Rails, obviously, which I'm still trying to wrap my head around. Specifically, we wanted to uncork Rails 4's Live Streaming (Server-Sent Events) and not create some Node backend to handle the live response. The documentation on this, however, is incredibly slim so most of our Saturday was spent figuring out how to run the server without closing the stream.
Kyle handled the backend, John the front-end, and I bounced between the two, but definitely more on the Rails coding and research.
We didn't win, we got a couple supportive comments on our entry, and in the end, we just ran out of time. We're bundling it up and are hoping to roll out a more stable, more feature-rich version in the near future. A blog post on Live Streaming is also on the horizon, and we may just open source the whole thing.
Used Rails 4 and Fontastic.me (Noteworthy gems: Puma, Sass, Compass, MySQL, Georuby, Whenever, Profanity Filter, will_paginate; After the competition: Remotipart, and Paperclip).