The purpose of this project is to build a software library which
contains all of the functionality needed to analyze a diet history or a
diet plan. This library can then be used to allow rapid development of
nutritional analysis software on a variety of operating systems for a
variety of different purposes.
This nutrition library should be useful to anyone building applications for the purpose of nutritional analysis. However the focus of the development will be on providing functionality needed to analyze ration plans and food intake surveys in developing countries or emergency situations for the purposes of detecting, eliminating and preventing malnutrition.
Basic functionality that will be supported by the library includes the following:
General properties that will guide the design and development of this software:
1. The software must be easily internationalizable to different languages. To acomplish this, all text strings will be separated from the source code and encoded as UTF-8 so that translation to a new language will only require a translation of existing text and not a significant rewrite of the code.
2. The software must be reasonable lightweight so that running this library on older computers or PDAs is not prohibitive.
3. The software must be easily portable so that it can be used on multiple operating systems with differing hardware architectures. For example, it is expected that this software should be usable on Linux, Unix, Windows, Mac OS, Palm OS, and any other operating system with a ISO standards compliant C++ compiler.
4. The software must be written in a modular way so that extension of the software is a reasonably straightforward task. The reason for this is that this project does not have one specific user in mind but it is hoped that this software will grow to meet the needs of a number of different users with unique needs.
Initial design and planning: finished by the end of December 2004
Initial implementation: released by the end of May 2004
I hope that this project will produce more than just a working software library. Most of the free software that I evaluated in considering this project was developed, released and then either never updated or infrequently updated. As a result much of the software had significant bugs or limitations that the users of the software will have to live with. The nature of this project is intended to be more dynamic with regular releases responding to the needs of its users. As well, given the open source nature of this project, anyone can take the existing source code and update or fix the code to meet their specific needs (or hire someone else to do it). As a result, users of this software will never be forced into choosing between accepting the software's limitations and replacing it completely with something else.
The first application designed to use this library will be a nutrition analysis program for Palm OS that I will create once the library is functional.