A Linux recipe database software offering recipe management for a cookbook with more than 100,000 recipes
AnyMeal has reached the development status alpha. This means, that the basic features have been implemented. The alpha-phase has its focus on achieving higher stability and implementing necessary features, which may be found to be missing.
At the current stage AnyMeal project is already possible to import, export, search, edit and display recipes. Printing recipes is not supported directly.
AnyMeal allows you to export recipes to docbook with the GUI and by command-line. If you know, how to use Apache-FOP, you can create PDF-files from your recipes already! Here is a german cookbook for example.
There is a wizard for setting up a database. Destruction of databases is supported by a simple dialog.
The architecture of this software is making extensive use of SQL and XML. The software is object-oriented and implemented in C++. By using the powerful XML-SQL-Utility-approach, it was possible to implement the database-backend very quickly.
Using flex, it was possible to build a performant importer for Mealmaster-recipes. Instead of having to type in your recipes, you can start with downloading and importing a huge amount of recipes from the internet.
All search-commands are converted to SQL and passed on to the database to fully exploit the power of MySQL. AnyMeal is being tested on databases with more than 120,000 recipes and 140 million characters. This is the equivalent of more than 40 weighty cookbooks. Most other applications can not handle more than a couple of thousand recipes!
Here are some key features of "anymeal":
· AnyMeal is able to import Mealmaster recipes (ingredient can be specified in two-columns as well) and store them in the database. Erroneous recipes can be exported to Mealmaster files to allow fast import without extensive user-interaction. The Mealmaster file containing the erroneous recipes also contains the error-messages.
· The user can select a single recipe for being displayed.
· The user can select a bunch of recipes to be exported in Mealmaster, docbook or HTML.
· A database wizard helps the user to setup MySQL.
· The recipes are searchable using the following criteria: title, category. The search results are sorted by title.
Maintaining the data
· A single recipe can be selected for editing. The changes can be transferred to the database or be discarded.
· AnyMeal is a database client software. It is able to retrieve and store recipes in a database (and delete them).
· The application accesses a MySQL-database. The design must allow AnyMeal to easily be extended to connect to another type of database (with another SQL dialect). The database resides in a LAN-network, so that security-issues don't need to be considered.
· Later versions of AnyMeal will be able to upgrade the database created by an old client if required.
· The passwords for connecting to the databases have to be stored safely. That means, they mustn't be stored as plain text in a configuration file.
The following features are wishes, which are not implemented at the moment:
· Maintaining a list of available ingredients and using it for creating shopping lists.
· Least recently used (matched by any search) recipes can be deleted.
· The user-interface allows collapsing of categories and ingredients (f.e. merge "Indian Desserts" into "desserts" and "indian").
· Internationalisation of xsl-script
· Display statistics after import.
· A single recipe or menu (small list of recipes) can be printed out.
· There is a context help including recipe-sources, FAQ, ...
· Backend for ODBC, SQLite, Metakit and Postgresql?
· Progressbar for sql-queries. More responsieness. User-break at any time.
· Shopping list, which can be completed and refined (access price-list of shops, compute total), assignment of shopping task.
· Allow scaling of amount for display.
· Convert titles to lower case
· Display database statistics
· Alternatively list by categories or by title.
· Assemble a meal (starters, main dish, dessert, ...) and meal-planner (using a calendar). Also see: ffts.com.
· scaling of recipes
· Spell-check for recipes.
· Conversion of quantity in editor, when unit is changed. Conversion of all ingredient-quantities, when yield is changed.
· Interactive combo-box for ingredient-selection in search-dialog. Automatic completion for dialog-boxes, listviews.
· Import of other formats (Rezkonv, CookML, mastercook, krecipes, mango )!?
· Filter and store duplicate recipes during import or later.
· Dialog for maintaining categories, units, ingredients (merge, delete, rename).
· Full-text search
· Test multi-user environment.
· Allow categorisation on import.
· Export/Import of RecipeML, CookML (must have cml-suffix), Rezkonv
· Import recipes from Internet (by downloading and importing file)
· Compute nutrition of ingredients using free USDA nutrition database Add a constraint solver.
· Use KDE I/O-handlers for access to arbitrary sources.
· Move recipes from one database to another
· Compute and print a shopping list.
· Support drag and drop.
· SOAP components with examples for seamless integration in Apache-Webservers
· Use MySQL-database with UTF-16 character-set. Use UTF-16 for Qt-output.
· Additional fields: Preparation time, authors, source, e-mail, address, date, notes, ingredient-ranges, cuisine (ethnicity), photo(s), recipe approval system, rating system, locations/restaurants (+rating), course, season, type, preparation method, source, required equipment
· Only keep specific number of most frequently displayed and listed recipes.
· Extra fields for preparation method and author.
· Use USDA nutrition database (problem: matching of ingredient-names)
· Use UPC database (http://www.upcdatabase.com/) for inventory recording, RFID?
· Braille-interface? See http://mielke.cc/brltty/, http://libbraille.org/, http://accessibility.kde.org/developer/
· Stable program under MS-Windows. Problems are: right now Xalan-C crashes, when doing xpath-searches; Qt-Windows-3.x is not available for free.
In a hurry? Add it to your Download Basket!
What's New in This Release:
- MySQL 5.0 handles booleans in a different way which required a bugfix in AnyMeal (the bug was "SAXParseException: Invalid character (Unicode: 0x1)").