module
Version:
v0.0.0-...-a602de9
Opens a new window with list of versions in this module.
Published: Feb 13, 2024
License: MIT
Opens a new window with license information.
README
¶
gourd
Go(lang) Universal Recipe Database
etymology: Before modern technology, people would use hollowed out gourds as food storage containers.
Gourd is a recipe database that can be used for meal planning and generating ingredient lists.
this project is a WIP
features
This is comprised mulitple components:
- api OpenAPI 3.0 REST API, defined in
internal/api/openapi.yaml
- ui in React + Typescript, using generated openapi clients
- scraper for saving recipes from websites (nytimes, seriouseats) for later analysis.
- parser for extracting structured information from freetext ingredient line items.
- e.g.
1 1/2 cups flour (180g), sifted
will be parsed into {ingredient: flour, amount: 1.5, unit: cup, modifier: sifted
.
- This leverages nickysemenza/ingredient-parser and is exposed to the UI via WebAssembly.
- usda is used for mapping ingredients to their USDA database equivalent, which has very detailed nutrition information
- e.g. plain strawberries or C&H brown sugar
- This dataset also contains the imperial to metric mappings (e.g. the data from the back of the flour bag that says
1/4 cup = 30 grams
)
- cli for interacting with the api instead using the UI
- this is used for importing/exporting recipes, as well as loading metadata
Directories
¶
internal
|
|
api
Package api provides primitives to interact with the openapi HTTP API.
|
Package api provides primitives to interact with the openapi HTTP API. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Click to show internal directories.
Click to hide internal directories.