Close
0%
0%

BakeryTool

I’m excited to share **BakeryTool**, a Python-based GUI application designed to recipe calculations

Similar projects worth following
82 views
0 followers
Hello Baking Enthusiasts! ????
Whether you’re a home baker or a professional, this tool helps you manage ingredient quantities, rescale recipes, and share your creations with ease. Plus, it supports **six languages** (English, French, Dutch, German, Spanish, Italian) to make it accessible worldwide!
### ? Why You’ll Love It

- **Saves Time**: Quickly scale recipes for any batch size.

- **Multilingual**: Perfect for international bakers or multilingual kitchens.

- **Flexible Outputs**: Share recipes professionally via PDF or email.

- **Customizable**: Easily extend with new recipes or ingredients via XML.

#### 1. **Multilingual Support**

- **Languages Supported**: Dutch (NL), French (FR), English (EN), German (DE), Spanish (ES), and Italian (IT).

- **Text Localization**: The script uses a `TEXTS` dictionary to store UI labels and messages for each language, allowing seamless switching between languages via a dropdown menu.

- **Ingredient and Recipe Translation**: Ingredients and recipe names are translated based on XML files (`BakeryTool1.xml` for ingredients, `BakeryTool2.xml` for recipes, and `BakeryTool3.xml` for conversion factors).

#### 2. **Ingredient Management**

- **Dynamic Ingredient Loading**: Ingredients are loaded from `BakeryTool1.xml`, which defines ingredient names and their translations across supported languages.

- **Extra Ingredients**: The GUI includes fields for three additional custom ingredients (labeled as "extra 1", "extra 2", "extra 3" by default, with language-specific names like "supplémentaire" in French).

- **Normalization**: Ingredient names are normalized (e.g., removing units like "(g)" or "(ml)") for consistent processing across languages.

#### 3. **Recipe Management**

- **Recipe Loading**: Recipes are loaded from `BakeryTool2.xml`, which contains recipe names, their translations, and ingredient quantities.

- **Recipe Selection**: Users can select from a list of predefined recipes in a pop-up window, which populates the ingredient fields with corresponding quantities.

- **Custom Input**: Users can manually enter or modify ingredient quantities, supporting both predefined and custom ingredients.

#### 4. **Weight Calculations**

- **Total Weight Calculation**: The script calculates the total weight of ingredients entered in the GUI, applying conversion factors from `BakeryTool3.xml` (e.g., to account for different densities or measurement units).

- **Rescaling**: Users can rescale ingredient quantities to achieve a desired total weight using multiplication, division, or per-piece calculations (e.g., specifying the number of pieces and weight per piece).

- **Error Handling**: The script prevents invalid operations, such as:

- Combining per-piece calculations with multiplication/division.

- Using both multiplication and division simultaneously.

- Rescaling when the current total weight is zero or when invalid inputs are provided.

#### 5. **Output Options**

- **PDF Generation**: Users can generate a PDF file listing the ingredient quantities and total weight, with a customizable file name.

- **Printing**: users can print the recipe directly to a printer. A temporary PDF is created and sent to the printer queue.

- **Email Sharing**: Users can send the recipe details (ingredients and total weight) via a `mailto` link, which opens the default email client with pre-filled subject and body.

#### 6. **Dependency Management**

- **Required Libraries**: The script checks for `tkinter` and `reportlab`.

#### 7. **User Interface Features**

- **GUI Layout**: The interface includes:

- A language selection dropdown.

- Input fields for ingredients and extra ingredients.

- A recipe selection button and listbox.

- Buttons for calculating total weight, resetting values, generating PDFs, printing, emailing, and closing the application.

- A display for the current total weight and a field for entering a new total weight for rescaling.

- **Pop-up Windows**:

- **Recipe Selection Window**: Displays a list of recipes for selection.

- **Multiplication Window**: Allows users to input multiplication/division factors or per-piece calculations to rescale quantities.

- **Auto-Closing Message Boxes**: Informational and error messages close automatically after a set duration (e.g., 3 seconds).

- **UI State Management**: Input fields and buttons are disabled during recipe selection or rescaling to prevent conflicts.

#### 8. **Error Handling and Robustness**

- **XML Parsing**: The script handles XML parsing errors (e.g., file not found, permission issues,...

Read more »

MacBakeryTool.7z

x-7z-compressed - 24.46 MB - 09/27/2025 at 11:50

Download

WinBakeryTool.7z

x-7z-compressed - 24.46 MB - 09/27/2025 at 11:47

Download

LinuxBakeryTool.7z

x-7z-compressed - 12.43 kB - 09/27/2025 at 11:44

Download

View all instructions

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates