I wanted to process all the data that the RoasTime and Roast.World collects about all the coffee roasting. I wrote this module to automatically do some calculations, generate labaels and upload it all to my Headless CMS that feeds my website.
Create .env
file for all the local configuration settings.
See .env.example
for details on what options are available.
TODO:
- Add roast level to the label
- Consider iterating on all environment variables beginning with 'BALL_' and auto processing those into the environment
Here are the applications in use in this repo that make use of the proto-module "ballistics".
This processes all the beans and roasts into an output directory
TODO:
- initial commit
- generate some kind of report on bean quantities/usage
This loads one roast, for quick checking and debugging. Design to be run in an interactive shell so that the loaded objects (and raw JSON) can be explored interactively.
TODO:
- take runtime args for which roast (by number, name?)
This is where I have wrapped up the module with some utility programs.
Attributes:
- list TBC
- raw: the raw JSON file loaded from RoasTime
- roasts: a list of roastIds that use this bean
Attributes:
- list TBC
- raw: the raw JSON file loaded from RoasTime
Functions:
- find_roast_by: find roasts by partial match on name or beanId if 'beanid' flag is set
A collection of Roast objects
Attributes:
- roasts: a list of Roast objects
- There are many things to do!
- Additional commentary from other sources to be brought in and added to the Contentful content
- Make up labels in two sizes, at high resolution
- Save to md/Contentful/other
- generate profile graph
- There are many things to do!
- .env.placeholder to show all the options that can be overridden
- Cupping scores
- Reviews from drinkers
- Aggregate scores from roasts to the bean as a whole
- Tasting notes (keyword tagging a la Untapped?)
- Assembling blend recipes, harking to the component beans
Target for first release