Git Product home page Git Product logo

roast-spec's Introduction

roast-spec

Specification for logging and publishing coffee roasts

Current Version: 0 (initial draft is a work-in-progress)

Summary

This is a specification for home (and possibly commercial?) coffee roasters to use when documenting their roasts. The goal is to provide a common format for logging, sharing, and analyzing roast notes between likeminded independent coffee roasters.

Specification

Note: in future revisions this may be moved to another file, possibly [SPECIFICATION.md].

File type and format

This specification is intended to be used with any file format that can be serialized into a hash. It is recommended that the format support arrays, strings, integers/numbers. Examples and discussion will focus on toml, but json and yaml will also be supported.

The file

example.toml: An example roast

version: (string) [required]

Version must be present. It can be a bare integer, but parsers should be able to handle a string value here. There may be a need to have a "2.1" in the event that a popular version that is not the latest needs something added/backported to it.

date: (string) [required]

Every roast must have a date provided. Date format is expected to be in ISO 8601 format. Precision to minutes.

units: (object) [required]

SI or imperial, then the units in that system.

I feel like this could be cleaner...

Technically grams are a mass unit, but we're on earth so we're safe to assume some things.

[units]
	unit_type   = "SI"
		[units.SI]
		temperature = "celcius"
		pressure    = "kPa"
		humidity    = "relative_percentage"
		weight      = "gram"

roaster: (object) [optional]

TODO: Document.

[roaster]
	type       = "Behmor 1600+"
	timer      = "20:30"
	parameters = "P1, A"

duration: (string) [optional]

Total time of roasting expressed in seconds.

time_to_first_crack: (string) [optional]

Time until first crack achieved expressed in seconds.

time_to_second_crack: (string) [optional]

Time until second crack achieved expressed in seconds.

bean: (object) [required]

The bean being roasted.

[bean]
	country            = "Ethiopia"
	region             = "Yirgacheffe"
	farm               = "Some Farm"
	lot                = "A"
	varietal           = "(optional)"
	vendor             = "Sweet Marias"
	vendor_url         = "https://www.sweetmarias.com (optional)"
	bean_url           = "https://www.sweetmarias.com/product/ethiopia-yirgacheffe-example-bean (optional)"
	vendor_description = "Boy is it coffee (optional)"

weight: (object) [required]

The pre and post roast weight of the beans expressed in floats. Units defined globally.

[weight]
	pre-roast  = "227.0"
	post-roast = "200.0"

environment (object) [optional]

Ambient temperature, humdity, and barometric pressure of roasting environment expressed in floats.

TODO: Units will be standardized and defined globally.

[environment]
	temperature = 68.0
	humidity    = 40.0
	pressure    = 101.3

events: (array<event>) [optional]

notes: (string) [optional]

Any notes or commentary on the roast.

roast-spec's People

Contributors

airencracken avatar ryands avatar

Watchers

 avatar  avatar

roast-spec's Issues

Proposal: extras object

An "extras" object for extra metadata related to the person logging a roast's specific usecase might provide useful flexibility.

Example:

[extras]
    photo = "https://cdn.myblog.org/photos/coffee_roast_10.png"
    whatever = "..."

Switch examples to toml

We decided that toml would be a clean/nice human readable recommendation.

Yaml and Json will still be permitted.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.