Blockhead Bob's Homebrew Web Application

Blockhead Bob's Homebrew Recipe Database Web Application

I audited a University of Michigan Web Applications For Everybody course taught by Professor Charles Severance through Coursera to learn PHP/MySQL/jQuery/JSON and web development basic principles. During this course Professor Severance offered exercises for each topic's module. However, since I was auditing the course and was not eligible for a certificate or able to turn in the assignments, I decided to go in a different direction and apply the exercises to a subject matter of my choice instead of that required by the course.

For some time I had been contemplating a database to store recipes for homebrews that I would be interested in making, as well as tracking how I brewed recipes, storing ingredient information and tracking their potential substitutes. When visiting the local homebrew store, inevitably I would write something down wrong from the book or magazine I had obtained the recipe from or they were out of a particular or specific ingredient. I was looking for an application I could access the recipes from on my smartphone while at the homebrew store, as well as clicking on an ingredient and seeing if there were any potential substitutes.

While I had visited some of the existing homebrew recipe sites, none really provided what I was exactly looking for. In addition, I also did not want to rely on an external source for maintaining the recipes I wanted to store or my individual brews. You just never know, here today, gone tomorrow. So, instead of spending my limited funds on a subscription service for storing homebrew recipes I decided I would finally invest in a hosting site and develop my web application skills by building and hosting the homebrew database and web application that I wanted.

The full stack development of this application and data population has proven to be a significant undertaking to get it to where I want it to be considering it is worked on in my spare time in addition to working full-time, raising a child, and generally having a life outside of sitting in front of a computer (including brewing beer). However, while there are still bugs being identified and fixed, I am pretty happy with how the application has turned out and it does make my trips to the homebrew store and brew day easier.

While the development of this application did not incorporate many of the bleeding edge platforms currently being used by a lot of developers, it did use fundamentally sound and proven technologies that have been working in web application development for a long time. These include:

Hopefully having developed this application with these technologies will provide a solid foundation for my knowledge of web application development and I can begin to start learning some of the newer in vogue technologies (time willing). In the meantime, here are some of the details of the application.

Homebrew Recipe Database Schema

Homebrew Schema
Homebrew DB DIA Schema
Homebrew SQL
HomeBrew SQL Example

Again, having limited funds to apply to this project, I used the Dia free, open source drawing software and diagram editor to sketch out the schema of the database for the table and attribute structures and types. The screen capture here should be mostly accurate (and legible), though I may have made some tweaks to the database that aren't currently accounted for. The red indicates tables that are included and black indicates potential tables to be added in the future (including water profiles). I also created all the tables, relationships, and constraints using SQL commands to maintain documentation on how the database was created, as well as being able to easily recreate them if necessary and have included an example here.