Skip to content

Latest commit

 

History

History
66 lines (46 loc) · 2.3 KB

RECIPES.md

File metadata and controls

66 lines (46 loc) · 2.3 KB

Recipes

The following is an example of what I'm thinking a recipe could look like and some documentation sketch of what values could represent. There is really only two main aspects to this file and these are described below

{
  "name": "invoice",
  "description": "A recipe for generating invoices based on hourly logged work with categories and descriptions",  
  "formats": ["cli", "csv", "html", "pdf"],
  "filters": {
    "date": ["date"],
    "trim": ["string", "number"],
    "search": ["string", "number"]
  },
  "instructions": [{
    "process": [{
      "increment": "time"
    },{
      "multiply": ["time", "rate"]
    }],
    "template": "tallied-data.html"
  }]
}

formats

What formats a given recipe can be exported from Conjuror in. Ideally, we can at some point make a bar graph that output in formats cli,svg and such...

filters

These values are our current calls that filter data, these are the things I've started moving to datapackage-query module but have yet to been imported into Conjuror. The following values are "filter tools" and would need to written into Conjuror for a recipe to make use of them.

  • date
  • trim
  • search

In the example above, these values have an array which would be "mapped" during a user configuring a project based on the types of value in a resources[x].schema

instructions

This is an array of objects, each of these objects would contain the following values:

process

Will be "operations" that get performed on a given line of data or in reference to the aggregate. Think of it is as instructions for Conjuror modules that get stored in a projects configuration / mapping. Examples aggregate

  • increment (hours)
  • translate (USD -> Euros)
  • multiple (hours * rate)

template

An HTML view (or other formats?) to inject the processed operations into. Currently this is just the boring-ish CSV data in an HTML <table> view


My current thinking on recipes is making them relatively "sculpted" by developers, as playing with the code towards this, it's going to involve HTML templates and various operations! I've added a folder recipes/invoices/ and recipes/expenses/

Make nice barcharts with Wunderbar lib https://github.com/gribnoysup/wunderbar