Wednesday, May 22, 2013

Hack Week 9


During Hack Week 9 Henne and I worked on an app to manage Hack Week projects. The goal was to provide a tool, which better supports the intention of Hack Week, to innovate, collaborate, and learn.


We decided to start from scratch and lined up a fine set of web technology to help us. Rails as application framework, Bootstrap for proper styling, Heroku for simple hosting, Capybara for integration tests, jQuery for a snappy UI, PostgreSQL to store our valuable data, Haml for pleasant templates, OmniAuth for secure and versatile authentication, and some more.

A week is not too much, but it's enough to get something going, so we did some whiteboard design and than dived into coding to make it real. At the end we had a working first version. It's running at suse-hackweek.herokuapp.com. Go to the projects page to see the web app live in action.


Our goal was to provide a convenient way to manage projects and provide the necessary structure to make it easy to find people and corresponding projects. In addition of managing the project data, we also wanted to have some way to comment, publish project updates, see the people involved, and make it easy to join projects, in order to facilitate interaction between people and so to tap into the creativity of the Hack Week crowd.

We were able to accomplish most of this, and even started a basic recommendation engine, which would hint you at project, which might be interesting for you. This is more of an experiment, but an adequate one for a Hack Week. To get the application to a state where it can actually be used will still be a little bit of work, but it could be feasible to do that for the next Hack Week. We'll see how this goes. If you want to help, you're welcome. The code is at http://github.com/suse/hackweek.

Part of the fun of creating this application was going through a number of design iterations. Here are some screenshots of how the app evolved over the week for your viewing pleasure:




It still amazes me how quickly you can create results with Rails, especially if you have the opportunity to freely choose the technology and are not burdened by legacy code. It definitely was a fun week.