ncage1974 said:
Its actually fairly easy. Especially compared to what i do at work with accounting tables
. Designing the table structure and normalization is fairly easy its designing the user interface that will take some time and some effort. I'm not saying it will be hard im just saying designing a interface that is professional look and a lot of people will be happy with will take some time. Then you have to write the help documentation which also takes time. Its a daughting task. I would not use foxpro because its kind of a dying technology at this point. Yes im sure people still use it but i don't know one developer that uses it. You most commonly see access. There are free solutions that would even be better and would have everything you need. For the Database....microsoft gives away a stripped down version of their professional database now called sql server express. Its pretty much full version of sql server with a 2GB database limit (not worries for a recipe program) and when so many people start to connect to the database they start to throttle the connections (again no worries for a recipe program). They also give Visual Studio Express away for free. Sql Server would also make these queries easier to write. Im sure they wouldn't be to bad in access either to T-SQL (microsofts version of SQL) just makes queries so easy to write. So what is stopping me from writing it? Lack of time? People don't understand these applications take a lot of time to write. Thats why they have teams of developers working on applications like this and not some single person. Could i do it? Yes but it would take me a lot of time which i have a hard time finding now. Something like this would be very good as an open source program so you could in essence get a team of developers that were interested and you wouldn't have to develope the entire thing by yourself.
Ncage
This is actually something that I am working on right now (well, not right now... I'm currently slacking off at work
).
Not being able to find a good recipe management software application that met all of my needs, and especially one that was open source, I decided to start working on my own a couple of weeks ago. Fortunately, I have a degree in computer engineering and I am a software developer (C/C++) by trade, so this is actually something I LOVE to do.
It will be designed as a network based application, not neccesarily WWW, but meant to be running on a local household LAN and accessible via your default web browser. This way, it would be possible to access recipes from anywhere in your house.
For those of you that are technical minded, I am using Ruby on Rails for the development. with the choice of either sqlite, mysql, or postgresql as the database backend. This allows the application run on almost any OS (Windows, Mac, Linus/UNIX), and to be accessible by any PC with a web browser.
I haven't gotten much passed the specifications, but as soon as I get an initial concept version up, I will make it available to the public (liscensed through the GPL or Creative Commons, so it will be free).
I have designed the initial relational database, which you can find
here. (this uses sqlite, but almost database is supported). Note that this is only an initial database and doesn't include a lot of data (like nutrition information) that would be in later versions. A breakdown of the model is that a recipe has many ingredients, has many steps, and can also contain other recipes (for example a recipe for tiramisu would include a recipe for zabagione which can also stand alone). An ingredient points to a single food item in a food table that will include all nutritional information (from the FDA). Recipes can be tagged with any number of user defined categories (tags). All measures relate to a units table which will keep track of conversion multipliers betweem measurements so that the user can convert to metric, standard, and even scale a recipe up and down easily.
In the next couple of weeks (I'm moving across the country at the end of next week and starting a new job), I will get project web space (maybe through sourceforge), and post specifications, features, and a timeline for at least the first few versions.
If you have any suggestions of features that you have always wanted in a cookbook application, let me know because now is the perfect time to plan for them. I have already taken some of the suggestions mentioned here (a mature parsing algorithm for cutting and pasting recipes from the web, meal planning and shopping lists with nutritional information, and multiple output formats - binder page, recipe card, email etc), and made sure that they will be doable.
Also, while I am confident in my coding abilities, I am not yet confident in my ability to design an intuitive user interface (I mostly do embedded systems development for work, web is only my hobby), so if any of you happen to be GUI experts, I would welcome the help when I get to that point.