Recipe Program

May 14, 2009 at 3:23 PM

Sorry for the long delay on my end.  Been busy with lots of different things.

Anyway, during our last thread we didn't arrive at a consensus, but it seemed like the majority were leaning towards a Recipe DB program. I'm going to run with that in this thread, but the final decision to create a Recipe DB isn't made yet.

One thing I want to emphasise in our discussions is that we have to be very careful of scope. If the reference application is too small, it won't really illustrate much.  If it's too large, it becomes a burden for developers to create actual reference applications based on the idea.  Keeping that in mind, some of the things I'm going to have here might sound much too complicated or grandoise, but keep in mind a few things.

  1. This is a brain storm of ideas, and we won't necessarily include all of the functionality.
  2. Most of the complexity here is in the Model layer, which will be provided for RI developers to consume.
  3. A lot of the functionality is likely to be mocked, and not real.

There's a set of core features that every Recipe DB program should have.

  1. Import/Export
  2. Search
  3. Add/Edit/Delete of recipes
  4. Printing

In addition there are features that are fairly common.

  1. Creation of shopping lists
  2. Creation of meal plans
  3. Calculation of nutritional information
  4. Scaling of ingredients based on serving sizes
  5. Conversion between metric and English measures

Finally, there are some intersting social features.

  1. Shared recipes that are synced to/from a community DB via web services
    1. Ratings system
  2. Publishing (recipe, shopping list, meal plan or combination of) to email
  3. Publishing (same as 2) to blogs (with a Tweet/Comment/Whatever to various social web services)

I'm going to include some links I found while researching this, just to have a public place to find them again, though it may be worth looking at by others.

Import/Export
 Different formats http://microformats.org/wiki/recipe-formats
  RecipeML http://www.formatdata.com/recipeml/spec/recipeml-spec.html
  MealMaster http://home.comcast.net/~episoft/
  REML  http://reml.sourceforge.net/
  RecipeBook XML http://www.happy-monkey.net/recipebook/
  MasterCook http://fp.enter.net/~rburk/pastries/doughnuts/appleorc.txt
  hRecipe  http://microformats.org/wiki/hrecipe

May 14, 2009 at 4:44 PM

My wife has given me an earful of requirements, based on problems she's seen with the Homemade Gourmet web site (http://www.homemadegourmet.com). Chief among them is the translation from meal plan to shopping list.

  • Understand the difference between recipe units (teaspoon, pinch) and shopping units (12-oz can, 5-lb bag).
  • Recognize that the same product may have different ingredient names (confectioner's sugar/powdered sugar).
  • Compare ingredients against current inventory (using shopping units).
  • Group shopping list according to section of grocery store.

These things may be obvious to us, but they weren't obvious to the folks who designed that fine web application.

May 14, 2009 at 5:06 PM

Nice additions... but remember, it's not likely all of these will be implemented.  A lot of that stuff is significant work, and while it's in the model layer, since they make little to no difference at the UI layer, I'm not sure the effort involved is worth while.  We'll have to way complexity vs. need when it comes time to implement.

It would be WAY cool to implement another version of this that's fully featured as a separate project, though.

May 15, 2009 at 4:27 AM
Yeah it would be! I think the meal plan/shopping list elements could be argued for heavily as having a good deal of logic behind them. Then again, maybe I really want to see those features!

On Thu, May 14, 2009 at 12:06 PM, wekempf <notifications@codeplex.com> wrote:

From: wekempf

Nice additions... but remember, it's not likely all of these will be implemented.  A lot of that stuff is significant work, and while it's in the model layer, since they make little to no difference at the UI layer, I'm not sure the effort involved is worth while.  We'll have to way complexity vs. need when it comes time to implement.

It would be WAY cool to implement another version of this that's fully featured as a separate project, though.

May 19, 2009 at 4:17 PM

This being a client-side MVVM reference, the social features seem out-of-scope. But we do want to demonstrate asynchronous processing, so communication with an external service would be an excellent example.

Are there any recipe-oriented services that already have an API? The MealMaster link seems promising. Is there already an instance running that we can use?

I'm thinking that the MVVM reference application can be a smart-client for an online service. If we don't have to write the online service ourselves, then the RIs can focus on implementing the pattern.

May 19, 2009 at 4:39 PM
I'm not aware of any existing online services.  I imagined we'd mock a service (i.e. it wouldn't ever really hit the wire, and would instead just return canned data) to simulate asynchronous processing.

On Tue, May 19, 2009 at 11:18 AM, MichaelLPerry1971 <notifications@codeplex.com> wrote:

From: MichaelLPerry1971

This being a client-side MVVM reference, the social features seem out-of-scope. But we do want to demonstrate asynchronous processing, so communication with an external service would be an excellent example.

Are there any recipe-oriented services that already have an API? The MealMaster link seems promising. Is there already an instance running that we can use?

I'm thinking that the MVVM reference application can be a smart-client for an online service. If we don't have to write the online service ourselves, then the RIs can focus on implementing the pattern.

Read the full discussion online.

To add a post to this discussion, reply to this email (mvvmref@discussions.codeplex.com)

To start a new discussion for this project, email mvvmref@discussions.codeplex.com

You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe or change your settings on codePlex.com.

Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at codeplex.com




--
Quidquid latine dictum sit, altum sonatur.
- Whatever is said in Latin sounds profound.

War is peace. Freedom is slavery.  Bugs are features.
May 19, 2009 at 8:52 PM
Hmmm...that'd be interesting as an Azure app.

On Tue, May 19, 2009 at 11:40 AM, wekempf <notifications@codeplex.com> wrote:

From: wekempf

I'm not aware of any existing online services.  I imagined we'd mock a service (i.e. it wouldn't ever really hit the wire, and would instead just return canned data) to simulate asynchronous processing.


On Tue, May 19, 2009 at 11:18 AM, MichaelLPerry1971 <notifications@codeplex.com> wrote:

From: MichaelLPerry1971

This being a client-side MVVM reference, the social features seem out-of-scope. But we do want to demonstrate asynchronous processing, so communication with an external service would be an excellent example.

Are there any recipe-oriented services that already have an API? The MealMaster link seems promising. Is there already an instance running that we can use?

I'm thinking that the MVVM reference application can be a smart-client for an online service. If we don't have to write the online service ourselves, then the RIs can focus on implementing the pattern.

Read the full discussion online.

To add a post to this discussion, reply to this email (mvvmref@discussions.codeplex.com)

To start a new discussion for this project, email mvvmref@discussions.codeplex.com

You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe or change your settings on codePlex.com.

Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at codeplex.com




--
Quidquid latine dictum sit, altum sonatur.
- Whatever is said in Latin sounds profound.

War is peace. Freedom is slavery.  Bugs are features.

Read the full discussion online.

To add a post to this discussion, reply to this email (mvvmref@discussions.codeplex.com)

To start a new discussion for this project, email mvvmref@discussions.codeplex.com

You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe or change your settings on codePlex.com.

Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at codeplex.com


May 19, 2009 at 9:31 PM
Yes, but not really relevant here, I don't think.  I'm reluctant to use any real web service, because it complicates what's necessary to run the application in many scenarios.  I think it's a much better idea to mock the web services.

On Tue, May 19, 2009 at 3:52 PM, mbrownbh <notifications@codeplex.com> wrote:

From: mbrownbh

Hmmm...that'd be interesting as an Azure app.


On Tue, May 19, 2009 at 11:40 AM, wekempf <notifications@codeplex.com> wrote:

From: wekempf

I'm not aware of any existing online services.  I imagined we'd mock a service (i.e. it wouldn't ever really hit the wire, and would instead just return canned data) to simulate asynchronous processing.


On Tue, May 19, 2009 at 11:18 AM, MichaelLPerry1971 <notifications@codeplex.com> wrote:

From: MichaelLPerry1971

This being a client-side MVVM reference, the social features seem out-of-scope. But we do want to demonstrate asynchronous processing, so communication with an external service would be an excellent example.

Are there any recipe-oriented services that already have an API? The MealMaster link seems promising. Is there already an instance running that we can use?

I'm thinking that the MVVM reference application can be a smart-client for an online service. If we don't have to write the online service ourselves, then the RIs can focus on implementing the pattern.

Read the full discussion online.

To add a post to this discussion, reply to this email (mvvmref@discussions.codeplex.com)

To start a new discussion for this project, email mvvmref@discussions.codeplex.com

You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe or change your settings on codePlex.com.

Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at codeplex.com




--
Quidquid latine dictum sit, altum sonatur.
- Whatever is said in Latin sounds profound.

War is peace. Freedom is slavery.  Bugs are features.

Read the full discussion online.

To add a post to this discussion, reply to this email (mvvmref@discussions.codeplex.com)

To start a new discussion for this project, email mvvmref@discussions.codeplex.com

You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe or change your settings on codePlex.com.

Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at codeplex.com


Read the full discussion online.

To add a post to this discussion, reply to this email (mvvmref@discussions.codeplex.com)

To start a new discussion for this project, email mvvmref@discussions.codeplex.com

You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe or change your settings on codePlex.com.

Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at codeplex.com




--
Quidquid latine dictum sit, altum sonatur.
- Whatever is said in Latin sounds profound.

War is peace. Freedom is slavery.  Bugs are features.
May 19, 2009 at 9:53 PM
You're right...I've gotta keep focused...hard to do when there's so many shiny objects glimmering around you.
May 21, 2009 at 12:24 PM

I'd be quite happy to mock up a WCF service to return data in different formats, if that would be any help.

May 21, 2009 at 6:53 PM
Looking at the list of formats, REML seems to be the most feature complete at first glance. I think leveraging that as our model would allow us to support all the others with a few additions.

On Thu, May 21, 2009 at 7:24 AM, ohanlonp <notifications@codeplex.com> wrote:

From: ohanlonp

I'd be quite happy to mock up a WCF service to return data in different formats, if that would be any help.

Read the full discussion online.

To add a post to this discussion, reply to this email (mvvmref@discussions.codeplex.com)

To start a new discussion for this project, email mvvmref@discussions.codeplex.com

You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe or change your settings on codePlex.com.

Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at codeplex.com


May 21, 2009 at 7:52 PM

That would seem fair. I'm going to download REML and have a scout round it.