Designing Beers

Code!

When I started brewing it didn't take long before I came to the conclusion that pen-and-paper was insufficient for recipe design and record keeping. I'm a developer, so my natural reaction when confronted by a problem is to say "I bet I could do this with a script!" I'd tried doing it all in Excel, considered using an existing software solution like beersmith, but there's no substitute for just coding it yourself. So I wrote an app to handle (almost) all of my recipe design and logging needs.

Every now and then I'll write up a few words about problems and solutions and other trivia that I've encountered writing this app. For now here is a (very) brief introduction to what I have done so far. NOTE: The application is not available publicly just yet, I still have a few features to add and issues to solve before I consider it ready to distribute.

Brew Designer

The app is built around three primary views: the recipes list view, which shows a list of all the recipes you've created, the recipe detail view, which allows the viewing and editing of individual recipes, and the brew log view, which details the progress of a specific brew session. There are additional views which allow the management of ingredients, system settings, etc.

The app handles all the necessary calculations for gravity, IBU, colour, and so forth. It allows me to keep detailed logs of how my recipes turn out, record measurements of fermentation progress and even add pictures of the final product so that when I repeat recipes I'm able to easily access all the information I gathered the previous time I brewed.

Recipe Detail

There are a few things still missing from it though. I don't currently do any water preparation calculations as the whole issue is sufficiently complex to have put me off tackling it so far. I also want to add a yeast pitching rate calculator as well as to figure out some way to deal with split batches. Beyond that there is a list the length of my arm of other, smaller, issues and bugs...


Technical Details

  • OS: Windows
  • Language: C# .Net 4.5 using WPF
  • Data Storage: SQLite
  • UI library: mahapps.metro