gourd

module
v0.0.0-...-a602de9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 13, 2024 License: MIT

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

codecov Go Report Card GoDoc

features

This is comprised mulitple components:

  1. api OpenAPI 3.0 REST API, defined in internal/api/openapi.yaml
  2. ui in React + Typescript, using generated openapi clients
  3. scraper for saving recipes from websites (nytimes, seriouseats) for later analysis.
  4. 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.
  5. 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)
  6. cli for interacting with the api instead using the UI
    • this is used for importing/exporting recipes, as well as loading metadata

Directories

Path Synopsis
internal
api
Package api provides primitives to interact with the openapi HTTP API.
Package api provides primitives to interact with the openapi HTTP API.
db

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL