Change log for 1/27/2015

Bug fixes:

  • Arbitrary schedules now display correctly (UI for setting schedule display coming soon).
  • Fixed bug that makes shopping lists display to sorting by category when adding new items.
  • Fixed bug that was making single notes on recipes hide (but 2 or more notes would display).
  • Public recipes now display a users notes, not the creators notes.
  • The basic form for adding recipes to the schedule (via the add to  plan link) will now only show recipes that a user has access to.
  • Paragraphs are preserved when editing notes or recipe instructions.
  • “Make it” no longer appears in the edit box when editing the instructions of a recipe.

New Features:

  • All new features focus on backend administrative functions.

{Insert Meal Here} Meal Planning Board Origins

The {Insert Meal Here} Meal Planning Board was conceived around midnight in the middle of June 2014.  I was up late, and had been looking for a better solution to keep track of the week’s meal plan than an old white board hung on the kitchen wall.  It worked, but there were problems.  I had to be at home to check it; I had to remember what cook book the recipe came from (or sometimes what a dish even was!); and, while it was easy to change things around, it wasn’t as easy to look and see how long it was going to take to make a dish, and, maybe we didn’t want to make home made pulled pork sliders on fresh baked brioche buns on a day that my young child and I were out running a bunch of errands.

whiteboard-11292014So around midnight, I started writing out a list of features that I wanted in a program that would help me in all of this.  The heart, and the origin of the whole thing, was a flexible meal planner that worked just as easily as a white board.  Something that I could drag recipes into and into their selected time and day, and if I wanted to change the day, just drag it and drop it into its new place.  I also wanted to be able to adjust the number of people that it was serving, to scale up a recipe to a party of twenty, or down to an intimate two.  I then wanted the program to be able to generate my shopping list for me, to make sure that I didn’t forget anything from the grocery store, ever again (the number of weeks I made a third trip to the grocery store because I forgot olive oil on the first two was getting ridiculous).

Insert meal here alpha shopping list.
{IMH} Shopping List Alpha Display

Of course a shopping list isn’t very useful if I can’t add things to it, but once I started using the  program, I quickly realized that there were certain things that I was adding to the program every week: eggs, milk, yogurt, etc.  So, a little bit more coding and I could make a list of things that I wanted to get every week.

Around this time I had started talking to some other people about this.  And there were four questions that I kept being asked, “Can I use it?”, “When will it be ready?”, and “How much?”. The fourth question was always in the form of, “Will it be able to ____”, and my answer was always one of three. Either “Yes, that’s in the plan!”, “It already does!”, or as happened earlier today, “It will now!” when someone asked about something that I hadn’t thought of, but was a wonderful idea!

Now, when I turn the search features on, it will not only be able to search by ingredient, style of cuisine, and prep time, but also by dietary restriction.  And, if you turn it on, it can warn you if you are adding a recipe that might violate any diet that you might be following!

But I still wanted more.  I kept adding features to the list, like a wizard to build unique recipes from common components (a pizza with choices of a dozen different doughs, sauces and any topping and sides you can imagine!) A budgeting tool so I could keep track of what I was spending before I get to the checkout line (without doing all the math myself). Or a glossary with common cooking terms appears as tool tips in recipes.

There is all of this, and more (so much more) on my list of features to add. There’s not a day since I started that I haven’t worked on this program in an effort to bring it to life.  It’s alive, and it works, and all of the core functions are in place.

glossary example
An Example of the {Insert Meal Here} glossary

{insert meal here} Composite Recipes

I have a lot of cook books.  In fact, they have place of pride on the bookshelf next to my desk where I can easily grab them and plan out what I want to cook.  It is one of the things that inspired this entire project.  And, as I’ve been building the program, and running it on my local machine to test, and use, I’ve put in some of my favorite recipes, or new recipes that I wanted to make. Occasionally (or frequently depending on the book) I would come across a recipe that was presented as if it were two recipes, like this:

recipe

A composite recipe. That is, two or more recipes that are interdependent on each other to make a single dish. At first, I had no way to handle this other than to simply enter in all the ingredients and make sure that I made the instructions more explicit about what goes where and how much.  That can be rather painful when you’re entering a dozen recipes into a form, and slows the process down a lot.  So, instead of making the data entry more work, I made the database do more work instead!  As you can see from the above screen shot, {Insert Meal Here} does indeed support composite recipe. (incidentally you also get a peak at what the alpha version pages look like, not much yet, I know).

 

{insert meal here} A few of my favorite features.

Last time, I shared with you my general excitement and a very brief overview of what I’m planning for my program.  Today, I wanted to talk a little bit more about some of the features that I’m most excited about, and have garnered some of the most excitement from the people I’ve talked to about it so far. Meal Templates (or The Great Meal Wizard! ™).

Meal Templates:  One of the first things I thought of when I started writing notes for the program was Meal Templates.  In our house we frequently do things like Pizza Night, Taco Night, or Tea Party.  And that is exactly what we write on our current white board. The fun thing is, as everyone who enjoys a good pizza knows, that you can make so many different variations on these, and other sort of generic ideas. But how do you best represent that on a meal planning board?

Yes, I could easily add Pepperoni Pizza, Sausage Pizza, Meat Lovers Pizza, etc into the database until my eyes bleed.  But there’s a better way.  Computers have been walking users through complex configuration for the better part of thirty years.  Why not a wizard that takes a basic idea (Pizza Night) and walks you through the steps to put together your perfect pizza!

In the Pizza Night example, it would follow the steps similar to this:

1) Choose your dough! Sourdough? Whole wheat dough? The system would present you any recipes that are on your account tagged with Pizza Dough and allow you to choose.

2) Choose your sauce. Classic marinara or a spicy pesto? This would be the same as the previous step but for your sauces.

So far steps one and two would be exactly like the manual step of adding recipes to the database and selecting each of them individually. However on step 3

3) Toppings! This one would present you a list of dozens, or hundreds of possible toppings (including cheeses) that you might want to grace your pizza.

4) Sides, much like steps 1 and 2, here you would be given a selection of popular (or not so popular) sides to serve with your pizza. Of course, you can completely skip a side if all you want is pizza.

In each of the steps above, you would also be given the opportunity to add your own recipe to the database, where it would be safely stored for future Pizza Nights.  And when you are done with the process, the whole thing is combined into one Composite Recipe for easy reference and addition to future meals without having to go through the selection process again (if you want the same pizza again anyway).

Don’t know what a Composite Recipe is? Check back soon and I’ll talk about what they are, and why they are important.

{insert meal here} Meal Planning Board

Somewhere around the end of May, beginning of June my wife and I got a small week planner white board. The kind that people write their schedules on so everyone knows what’s going when.  For us, it was so I would remember what I was cooking when.  It was amazing! Rather than struggling to remember where I left a sheet of paper with the plan on it, it was right there on the wall. I could change what day of the week I was doing my zucchini fritters with the faux croque madame.

And for a while that was good enough.  But I still had to generate a shopping list and schedule the meal plan before I put it onto the white board.  And I often found myself starting two or three shopping lists during the week with things that I know I’ll need when I go to the grocery store (only to lose them, or forget that I already made them). I wanted to be able to pull a standard recipe out at a moment’s notice and have it ready to go! (like my mom’s blank recipe book that she filled with family favorite recipes).

So, I turned to Google. I turned to forums. I turned to blogs. Nowhere could I find the tool that would do the things that I wanted, that I needed.  There are plenty of tools out there for aggregating recipes. More that make a shopping list for you. And even programs that help you with meal scheduling. But all three? No. While I looked into an abyss of searches for a program that didn’t exist, I kept thinking of more features that I wanted! Nowhere was the tool I was dreaming up to be found!

Fortunately, though I am an airhead, I’m also programmer, and I knew just what to do.  So one sleepless night, when there was no one to talk to and TV felt redundant and dull, I pulled up my IDE (that’ programmer talk for a very fancy text editor) and started writing code.  A lot of code.  I built a database, I wrote control logic, I built HTML templates.  And slowly a virtual white board started coming together.  And a shopping list.  And a recipe aggregator.

Right now, it’s still just a prototype. Right now, it’s running locally on my machine, and a few select testers to help me flesh out the feature set. I want to get this right. I want to share with you this wonderful tool that is in my mind, so that together we can explore new recipes.