Being a big foodie and a home cook, I have quite the collection of recipes. They have been cobbled together over the years, clipped from newspapers and magazines, copied from my mom's recipes, from cookbooks and online recipe sites. I have a rather large folder of pretty disorganized papers, that is desperately screaming out to be organized. If you are like me, you probably have a similar folder, or maybe even boxes full of recipes. So how to go about organizing these recipes? Let's explore the possibilities... I recently bought myself an iPad mini, and have found myself searching the web for recipes on it, and bringing it into the kitchen with me for reference. With its smart cover case, I can even prop it up at an angle like I would a cookbook.
Having my recipes readily available on my iPad has become more or less the number one requirement. In addition to having that really nice form factor, here are my list of must-have requirements:
- Nicely presented on the iPad, with large enough text for reading while the tablet sits on the counter.
- Search-able by recipe name, ingredients, keywords, tags, etc.
- Link to online sources of recipes.
- Import from text files
- Scraping recipes from online sources
- Shopping list generator
There are several ways I could go about creating a recipe database that would meet my basic requirements:
- Create a FileMaker database and use it on my iPad with FileMaker Go, which is a free app.
- Use a CMS like WordPress or Drupal to create a recipe site
- build a custom web app using a modern framework live Laravel or Symfony (I'm a PHP guy, but I'm sure you could build something real nice with Ruby on Rails or Node.js).
The latter two approaches are much more complicated, so for now, I will start by looking at FileMaker. Advantages of using FileMaker:
- Rapid application development
- A tool that I am already quite familiar with
- Mobile friendly adaptive layout tools (using FileMaker Pro 12 or 13)
- Built in robust search functionality
- I can bring it online later by hosting it on FileMaker Server
The cons of a FileMaker based solution are:
- Proprietary file format and software
- Costly – an individual licence of FileMaker Pro is US$329.00, and FileMaker Server with 1 Go/web users is US$1,044.00. Adding 5 Go/Web users brings that up to US$1,944.00. Even on an annual licence billed monthly, that is $69/month. That's a lot of money to have a properly hosted web-available personal recipe database.
- If I go with just syncing it to my iPad from my PC, I forgo any sharing capabilities, and need to rely on local storage on my iPad, which of course is at a premium on my 16GB model. Once you start adding pictures to the stored recipes, the local storage would quickly be gobbled up.
All that being said, I already had a license of FileMaker Pro 12 from a recent project, so I did not need to outlay any of these costs to develop the database. I decided to try my hand at creating a basic database that would satisfy my mandatory requirements. From my previous experience, I knew that I could quickly build something that was pretty sweet. In about 2 days of development spread over the course of a week, I had what I would consider a pretty good starting point. I settled upon a simple structure, with only 3 tables (recipes, recipe ingredients, and tags for categorizing recipes). I have only 4 layouts: View Recipe, Edit Recipe, Recipe List, and a web viewer.
The web viewer allows me to see the original online recipe embedded within the FileMaker interface. I could have easily made it just open the link in the browser, but I wanted to make it so you didn't need to switch back and forth between the browser and FileMaker Go. Please try the database yourself, and let me know what you think in the comments form.
Requires either FileMaker 12 or 13 on Mac/PC, or FileMaker Go 12 or later on iOS devices. Note the layouts are optimized for iPad, so it won't be optimal for viewing on a iPhone. In the next article in this series, I will explore using a content management system such as WordPress or Drupal to store your recipes on your web site.