No description
Find a file
2026-06-08 20:21:25 -04:00
lib bug fixes 2026-06-08 20:21:25 -04:00
linux added gui 2026-06-08 16:11:05 -04:00
src bug fixes 2026-06-08 20:21:25 -04:00
test added gui 2026-06-08 16:11:05 -04:00
windows added gui 2026-06-08 16:11:05 -04:00
.gitignore added gui 2026-06-08 16:11:05 -04:00
analysis_options.yaml added gui 2026-06-08 16:11:05 -04:00
Cargo.lock first commit 2026-06-07 19:49:30 -04:00
Cargo.toml first commit 2026-06-07 19:49:30 -04:00
flake.lock first commit 2026-06-07 19:49:30 -04:00
flake.nix added gui 2026-06-08 16:11:05 -04:00
pubspec.lock added gui 2026-06-08 16:11:05 -04:00
pubspec.yaml added gui 2026-06-08 16:11:05 -04:00
README.md added gui 2026-06-08 16:11:05 -04:00

recipe-to-epub

Scan recipe cards via CUPS/SANE, OCR them with Tesseract, manage them in a graphical app, and compile into a richly styled EPUB recipe book.

Components

  • GUI — Flutter-based graphical recipe manager (cross-platform: Linux, Windows)
  • CLI — Rust backend for scanning, OCR, and EPUB compilation

Workflow

Recipe card → [Scanner] → [OCR] → [Edit] → [Export EPUB]
                GUI          CLI      GUI        CLI

GUI (Flutter)

Manage recipes, trigger scanning/OCR, and export to EPUB.

Linux

# Build
flutter build linux --release

# Run
./build/linux/x64/release/bundle/recipe_manager

Windows

flutter build windows --release
# Output: build\windows\x64\release\recipe_manager.exe

Or open the windows/ folder in Visual Studio and build with CMake.

From Nix

nix develop  # enters a shell with Flutter, Rust, tesseract, and sane-backends
flutter build linux --release

CLI (Rust)

The CLI backend handles scanning, OCR, and EPUB compilation. The GUI calls this automatically if it's in PATH.

Install

cargo install --path .

Or via Nix:

nix run .# -- --help

Usage

recipe-to-epub list-scanners    # List available scanners
recipe-to-epub scan --output scan.png   # Scan a recipe card
recipe-to-epub ocr scan.png     # OCR a scanned image
recipe-to-epub compile recipes/ --output cookbook.epub --title "My Recipes"   # Compile to EPUB

Recipe format

Each recipe is a markdown file with YAML frontmatter:

---
title: Chocolate Chip Cookies
source: Family Recipe Box
prep_time: 15 minutes
cook_time: 10 minutes
servings: 24 cookies
date_scanned: 2026-06-07
---

## Ingredients
- 2 1/4 cups all-purpose flour
- 1 cup butter

## Instructions
1. Preheat oven to 375°F.
2. Mix ingredients.

Project structure

├── lib/                  # Flutter/Dart GUI source
│   ├── main.dart
│   ├── app.dart
│   ├── models/           # Data models
│   ├── screens/          # UI screens
│   ├── services/         # Backend integration
│   └── widgets/          # Reusable widgets
├── src/                  # Rust CLI source
│   ├── main.rs
│   ├── epub.rs
│   ├── ocr.rs
│   ├── recipe.rs
│   └── scanner.rs
├── linux/                # Linux Flutter runner
├── windows/              # Windows Flutter runner
├── pubspec.yaml          # Flutter config
├── Cargo.toml            # Rust config
└── flake.nix             # Nix flake

License

MIT