The Fresh Loaf

A Community of Amateur Bakers and Artisan Bread Enthusiasts.

Bread Baker's Notebook Open Source App

lew_c's picture
lew_c

Bread Baker's Notebook Open Source App

I'm working on an automated bread bakers notebook, primarily for myself but will release it as open source (free) software. It likely wont be ready for release until late summer as we are insanely busy till near the end of June but as time allows I will post info hoping for feedback and suggestions. Tech stuff is in italics and can be skimmed for the intelligible bits.

The software is a PC app written in C#, a strongly typed, memory managed general purpose language that is very much like Java. I have a decent PC tablet to use in the kitchen and that was the motivation to start this project. I love math but I want a machine to do all the twiddly arithmetic for me.

The program essentially runs within a (.NET) TabControl so that rather than a menu running across the top of the app it's tab buttons. We will start by looking at the Ingredient tab because it is both the most stable and the most fundamental. It allows the user to create and edit ingredients. Internally these are modeled by an object that is an instance of the class, Ingredient. This class is the center of concern in virtually every other tab, though how this is the case will not be clear till we look at the “inheritance” of the bread class much latter.

On the Ingredients Tab, when one clicks 'New', as has been done above, the serving size button is auto-selected and locked on until the new ingredient has been saved or abandoned. One then enters the serving size in grams and the available nutrition information for that serving size. Finally one sets the “Category” for the ingredient. That is in the process of being done in the image above. And much of what the program does is dependent on each ingredient being assigned its appropriate Category.

( … this thread may belong else where ...)

lew_c's picture
lew_c

Note. The nutrition info display does not auto-format until one saves.  I cut and pasted the spelt display from a screen  shot after the save operation.  The text is grayed because it is no longer in a create or edit mode and can only be viewed not changed. That is why the control texts indicate contradictory units.  BTW the standard unit is 100 grams and allows direct comparison of the nutrition info regardless of the serving size used for value input.

Darwin's picture
Darwin

I think lots of us will be happy to test drive it for you.  Baker's % and scaling up recipes can be confusing.

Gingi's picture
Gingi

hi there. thanks for sharing. wont it be easy to make it online program vs. a PC program? I believe that the same functions you are coding are able to be executed online.But probably it's too late.

lew_c's picture
lew_c

I don't do web stuff and C# in Visual Studio for this kind of project is relatively easy going for me. Because this is a notebook there is a real advantage of having one's own copy on one's own machine.  This will become more apparent when more of the program is explored.

golgi70's picture
golgi70 (not verified)

Can't wait to do some testing.  

Josh

emkay's picture
emkay

Your app looks good. Are you a C#/ .NET programmer professionally or is it just a hobby?

lew_c's picture
lew_c

retired programmer

ccsdg's picture
ccsdg

unfortunately i don't code c# (we don't own microsoft machines!) but i'm thrilled that you're making it open source. What kind of version control is it under (if any)?

I haven't made much headway on my web app as I'm involved with another project until the end of June but would follow your app closely!

lew_c's picture
lew_c

No version control. For starters I will probably just post the VS project folder plus a copy of the executable to a Dropbox.  If there is real interest I will see about a sourceforge account for it. 

lew_c's picture
lew_c

Do you use an OOP in in you web work?

ccsdg's picture
ccsdg

Oop as in object oriented language? I try to be as oop as i can with php, though it's not really the language for objects... i do javascript in a more class-based fashion than php, and I'm getting my feet wet in ruby now too, which is a lot more oop than php. Haven't done a project in ruby yet though.

unless you meant something else?

lew_c's picture
lew_c

Yes Object Oriented.  The only web work I've done was a bit of drag and drop. I know that on .NET there is the ASP.NET framework that integrates with, among other languages, C#.  But I haven't a clue as to how its done on other platforms.  My past OSs were DEC mini computer RT and RSTSE and later Unix and Unix Solaris before jumping to M$s NT.

lew_c's picture
lew_c

Above is the Create/Edit tab. It is almost stable. When a bread or preferment is created it may be locked and used as a template of fixed proportions to produce bread recipes of any chosen size. How these locked breads are so used will be discussed when we get to the Breads tab.

New breads and preferments can be created in either grams or percent, but once an ingredient has been added in percent mode one cannot switch back to grams until a save is done. The mode is selected by clicking on either the 'g' or '%' character to the left of the “Ingredients in Bread” label. In percent mode the remaining percent of Hydratables is tracked by the blue text at the bottom of the “Ingredients in Bread” list. When a hydratable is clicked in the “Available Ingredients” list box a blue plus sign appears to the right of the amount input text box as is the case in the screen shot above. Clicking the blue plus sign adds the remaining percent to the selected ingredient. This also functions in edit mode.

 

More on this tab later as time allows.

lew_c's picture
lew_c

Below is the Breads Tab, its internals are a little more than half done and I'm not too happy with the current layout, but basically this is it. You can set the all the ingredient weights for a batch either by setting the weight for one ingredient, the total weight of all the flours, the total weight of all the Hydratables, the total weight of the dough, the total weight of all the dry ingredients or by percent of original recipe weight from 20% to 500%. The current value for all these parameters should be shown whenever a bread is selected but is not implemented yet. (I haven't added detail to any ingredient nutrition info as ingredients won't be stable until Notes are stable. At that point ingredient lists will be exportable without fear of loss due to changes in the rest of the code. That's the reason for the paucity of accurate nutrition info at present.) 

What I need to know – have I missed anything, this would be the time to make changes.

 The calculator portion of this app should be functional with less than a week's part time work but only for simple breads, i.e. breads that do not contain a preferment. However we are about to be gone for most of May. In any case when it gets to that point it will be ready for others to break it so I can dig out all the bugs and I will release the project file and an executable for that purpose.

 lew

lew_c's picture
lew_c

The Bread Baker's Notebook has been released on sourceforge as a work in progress.

https://sourceforge.net/projects/breadbakersnotebook/

On this page you find a pre-built notebook file which you are advise to begin with.

https://sourceforge.net/projects/breadbakersnotebook/files/?source=navbar/

Only the calculator portion is functional at present except:

>   The nutrition analysis control is not working though that may be fixed in a day or two if not sooner.

>   Though standard preferments are properly computed, bread doughs marked as useable for preferments    (a bread can be an ingredient in itself or another bread) are not properly incorporated, and at present neither are soakers.

>   There are problems with formatting on screens that are not 1920 x 1200 in resolution, and most aren't. The issues I've seen so far do not interfere with the programs use, though they are unacceptable. As it's not a problem for me this is likely to be one of the last issues addressed … unless you are programmer and want to work on that. :)

 

For now, the the ready-to-run MS Visual studio C# project folder can be found at

https://www.dropbox.com/sh/f66puz8iprah71i/AACzrFnu0sk_lEC0GKNnIk15a

This folder is refreshed once every day or two so it lags behind the executable posted on sourceforge. The source files on sourceforge are way out of date so get them from dropbox -- again for now.

The project is being developed on Windows 7 and VS Pro 2010. An earlier version compiled and ran on Windows 8.1 under VS Express 2013.

At this point the program's results should be examined for errors. They are correct now but with each update there is a chance of new problems. 

Because Ingredients contain the class Notes and Notes are not yet stable you are advised not to invest much time in constructing a library of ingredients as they will not be compatible with future releases.

Feedback would be welcome.

 lew_c