๐ง Advanced User Guide
How the System Works
Each household has its own isolated data space. Everything โ recipes, menus, pantry, categories โ is stored per household and never shared between households.
| Data | What it stores |
|---|---|
recipes_db | All household recipes (imported + manually added) |
categories | Category list with codes, names and icons |
weekly_menu | Current week's generated menu |
pantry | List of pantry item strings (bilingual) |
activity_log | Timestamped audit trail (capped at 200 entries) |
removed_categories | Tombstone list of deleted category codes |
imported_packs | Metadata for imported recipe packs |
How Categories Work
Every category has a code (internal ID, never changes) and a name (what you see, can be renamed freely). Renaming is always safe โ so you can rename "Chicken" to "Chicken Dinners" without breaking anything.
The Self-Heal System
When you load categories, the app checks the base seed file and automatically adds any new categories added to the system after your household was created. But it never overwrites categories you've renamed, and never re-adds categories you've explicitly deleted.
Deleted categories are tracked in a tombstone list (removed_categories). If you delete "Grill" it won't come back โ even if the base seed still has it.
How Recipe Packs Work
Import Flow
- You click Import Pack
- All recipes are added to your household's recipe database
- Pack metadata (name, icon, colour) is saved
- Any new categories in the pack are added to your list (tagged as imported)
Re-importing a Pack
If you re-import a pack you already have, existing recipes are not duplicated. Only new recipes (added since your last import) are added.
Removing a Pack
Go to Settings โ Recipe Packs โ Manage Packs โ Remove. This deletes all pack recipes from your database. Any recipes you manually moved to other categories are kept โ they're yours now.
How Menu Generation Works
- Load recipes โ loads your household recipes + shared base recipes
- Filter by category โ keeps only recipes in your selected categories
- Deduplicate โ deprioritises recently served recipes for variety
- Protein balance โ tries not to serve the same protein type multiple days in a row
- Pick 6 โ randomly selects 6 recipes from the filtered pool
- Save โ writes the menu to your household record
If the selected categories have zero recipes, the app returns an error instead of generating an empty menu.
How the Pantry Works
Pantry items are stored as lowercase strings. The app has a built-in translation table mapping English โ Norwegian for ~100 common staples.
When you add "lemon" โ "sitron" is also stored automatically. When you remove "lemon" โ "sitron" is also removed. Items that are identical in both languages (e.g. "salt") always show regardless of language setting.
Activity Log
The activity log records every significant action in the household โ who added/edited/deleted recipes, who generated menus, who changed categories. Shows the profile name or email, the action, and a timestamp. Capped at 200 entries. Only the household owner can see it (under Settings).
Advanced Workflows
Setting Up a New Household
- Import 2-3 recipe packs matching your family's taste
- Add 5-10 of your own family recipes manually
- Rename categories to match how you actually cook
- Update your pantry โ remove what you never have, add what you always have
- Generate your first menu with all categories selected
Multi-Household Setup
Each household is completely separate โ recipes, menus and pantry are never shared. Switch between them via the household selector.