SENG 310   - Meal Plan System

Requirements Review
 - Introduction
 - Main Functions
 - Users
 - Usability Goals
 - User Experience Goals


System Overview
 - System Concept
 - System Technology
 - Conceptual Model
 - Interface Metaphor


Menu System
 - Introduction
 - Profile
 - Edit
 - Search
 - Favorite
 - Ingredient
 - Recipe
 - Window
 - Help


System Functionalities
 - Multiple User Profile
 - Ingredient Manipulation
 - Recipe Manipulation
 - Recipe Basic Search
 - Recipe Advance Search
 - Recipe Preferece Setting
 - Search History
 - System Recovery

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  System Concept


"Meal Plan System" essentially is a program that recommends meal recipe and keeps track of home grocery supply.

At front-end application level, users operate the program based on functionalities provided by "Meal plan system" in order to get their favorite meal recipe for cooking or to get their grocery list for shopping. No matter users are novices or experts on computer; they will be limited to perform only to the two main tasks or to any sub-tasks related to them. Users will not be able to interfere with lower level structure of the program.

At back-end system level, “meal plan system?essentially has TWO central databases: Ingredient database and Recipe database. Ingredient database is for storing home grocery supply. Users should update their ingredient database whenever a grocery shopping is made; ingredient database is also self-updated whenever a meal recipe is selected for cooking by the user. Recipe database is for storing meal recipes. Recipe can be added, modified, rated or set with any preference settings at any time but will be eventually stored to its own central database in the end.

back to top

  System Technology

 o Database
Database is the central technology used in "eal plan system" since the program is dealing with ingredients and recipes which are in form of data digitally stored in computer. As a data-driven application, database should be used to ensure the integrity and efficiency of the program. It is up to the development team to decide which DBMS (database management system) should be used for “meal plan system? however as it is a relatively small stand-alone program, DBMS like mySQL or postgresql might be suggested. If in a future time, recipe database is expected to be connected to an even larger external centralized database, more powerful DBMS such as SQL-Server or Oracle can be implemented.

 o XML
XML is a very powerful way to handle data, it does not provide a standard, it provides a technology to create standards and with those handle data weather it is structured (like databases) or unstructured (like text). So "RecipeXML" is proposed: the format has to provide data in a structured and extensible way so applications can easily work with just a selection of the data.

      >Translation of ingredients.
When searching the internet for recipes it is a good thing to know the translation of the ingredients used. We will have to provide a database with general ingredients and a number of translations accordingly. This database will also have to extensible since we will want to add more ingredients over time. It would be a good thing to use the same technique as with the units: define base ingredients and then translate them elsewhere (a language specific file) referring to the base ingredients. In this case every RecipeXML document's ingredients could be translated in an eyeblink into any language provided. Of course every document would have to be constructed in English or would need an additional field that describes the locales/language used.

      >Translation of recipes.
This will be impossible without the use of translation software, so every recipe should have a language field which tells which language is used for the recipe. There should be a special part inside the RecipeXML document for describing the steps of the recipe for every language.

A typical RecipeXML structure could look like this:

----------------------------------------------------------------------------------------
<recipe>

<title>coffee and bisquits</title>
<link url="http://www.somesite.com/recipe1.html">www.somesite.com</link>
<pubDate>Tue, 22 Mar 2005 20:00:00 CET</pubDate>
<author>Group 12</author>
<language>en-us</language>
<time>1200</time>

<ingredients>

<ingr id="1" name="coffee" value="500" type="gr" />
<ingr id="2" name="milk" value="1" type="l" state="cold" />
<ingr id="3" name="sauce" value="3" type="pc" />
<ingr id="4" name="biscuit" value="10" type="pc" />

</ingredients>

<instructions>

<step name="1">
<img src="http://www.somesite.com/coffee.png" />
<desc>Make the coffee by using your coffee machine</desc>
</step>

<step name="2">
<img src="http://www.somesite.com/milk_sauce.png" />
<desc> Put in the milk and sauce.</desc>
</step>

<step name="3">
<img src="http://www.somesite.com/coffe_bisquits.png" />
<desc> Ask you friends to come along and serve the coffee in nice cups
with a plate full bisquits at the center of the table.</desc>
</step>

</instructions>

</recipe>
----------------------------------------------------------------------------------------

A typical RecipeXML can be published like this:
----------------------------------------------------------------------------------------
coffee and bisquits

source: www.somesite.com
publication date: Tue, 22 Mar 2005 20:00:00 CET
author: Group 12
language: en-us
total time: 1200 seconds
INGREDIENTS
  - 500 gr coffee
  - 1 l milk (cold)
  - 3 pc sauce
  - 10 pc biscuit
INSTRUCTIONS:
Step 1:
Make the coffee by using your coffee machine

Step 2:
Put in the milk and sauce.

Step 3:
Ask you friends to come along and serve the coffee in nice cups with a plate full bisquits at the center of the table.
----------------------------------------------------------------------------------------

To conclude, if XML technology is used in “meal plan system?for storing ingredients and recipes, advantages are:

     - Provide data in a structured and extensible way.
     - Provide functionality to localize data.
     - Provide techniques to make data available.

The development team will need to come up a standard "Recipe DTD" to standardize the XML format for ingredients and recipe, and it is always feasible to have the published ingredients and recipes in a much more visual representation as sample screenshots will be given integrated within the “meal plan system?

back to top

  Conceptual Model


Based on Activities
    o Giving instructions
"Meal plan system" can be issued with commands using keyboard shortcuts to perform all kinds of functionalities, as well, selection options via menus are also approachable.

    o Conversing
One of the main “Meal plan system?functionalities is to give users recommendation based on users search. As a result, search engine in the system is a key mechanic as an underlying model of having a conversation with users.

   o Exploring and Browsing
"Meal plan system" is mainly a data-driven application which is all information based. Exploring and browsing is one of the key activities users will perform quite often in order to explore their favorite recipe from the recipe database or browse a future grocery shopping list from ingredients database.

Based on Objects
Recipes are traditionally in books format, hence recipe book here is the conceptual module based on objects for "Meal plan system" By digitizing recipe from book formats to data we have freedom control over all recipes and can manipulate them with different user profile over their favorites.

back to top

  Interface Metaphor


"Meal plan system" is a small desktop application and should be easy to use from novice users to advance users. As many of computer users have experiences on using Microsoft Outlook, the interface for "Meal plan system" is similar to the layout and menu style of Outlook in which it has several common task classic view windows to the left panel, right top optional panel has history search results and right center panel has the main area for displaying recipe. More details about the interface will be illustrated in next few parts with supplementary screenshots.

back to top