Git Product home page Git Product logo

dye_de1app_dsx_plugin's Introduction

"Describe Your Espresso" DE1app DSx plugin

WARNING: DON'T USE WITH CURRENT DE1 APP VERSIONS (NEWER THAN 1.37) This was a DSx-only plugin and has been superseded by the skin-independent extension that is distributed automatically with the base app.

"Describe Your Espresso" (DYE) is a DSx plugin for the Decent DE1 app.

It improves the default shot logging functionality in the Insight and DSx skins, allowing users to edit, modify and use shot metadata such as beans, grinder, EY & TDS or espresso description.

By Enrique Bengoechea (with lots of copy/paste/tweak from Damian, John and Johanna's code!)

Plugin manual available on Decent Diaspora site (Decent owners only):

Code released under GPLv3 license. See LICENSE file.

Installation

  1. Ensure you have DE1 app v1.34 stable or higher, and DSx version v4.39 or higher.
  2. Copy this file "describe_your_espresso.dsx" to the "de1plus/skins/DSx/DSx_Plugins" folder.
  3. Restart the app with DSx as skin.
  4. After initial install, updates can be done from within the app, on the "Describe Your Espresso Settings" page.

Features

  1. "Describe your espresso" accesible from DSx home screen with a single click, for both next and last shots.

  2. All main description data in a single screen for easier data entry.

    • Irrelevant options ("I weight my beans" / "I use a refractometer") are removed.
  3. Facilitate data entry in the UI:

    • Numeric fields can be typed directly, using clicker arrows, or double tapping on them to launch a full-page numeric-pad.
    • Keyboard return in non-multiline entries take you directly to the next field.
    • Choose categories fields (bean brand, type, grinder, etc) from a list of all previously typed values.
    • Star-rating system for Enjoyment
    • Mass-modify past entered categories values at once.
  4. Description data from previous shots can now be retrieved and modified:

    • A summary is shown on the History Viewer page, below the profile on both the left and right shots.
    • When that summary is clicked, the describe page is open showing the description for the past shot, which can be modified
  5. Create a SQLite database of shot descriptions.

    • Populate on startup
    • User decides to store only shot descriptions or shot description+shot series.
    • Update whenever there are new shots or shot data changes
    • Update (synchronize) on startup when a shot file has been added, changed or deleted on disk, or trigger synch from the settings page.
  6. "Filter Shot History" page callable from the history viewer to restrict the shots being shown on both left and right listboxes.

  7. Upload shot files to Miha's Visualizer repository, either automatically when finished, or on demand with a button press.

  8. Configuration page allows defining settings and launch database maintenance actions from within the app.

  9. TBD Add new description data: other equipment, beans details (country, variety), detailed coffee ratings like in cupping scoring sheets, etc.

dye_de1app_dsx_plugin's People

Contributors

ebengoechea avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

dye_de1app_dsx_plugin's Issues

Menu on the DYE page

Many enhancements listed here are actions to be triggered on a past shot selected on DYE (re-upload to visualizer, export the data, delete the shot...) Nevertheless, that page is already crowded, so some UI must be added that does not gets in the way for standard usage but allows to increase the actions performed on shots.

My current idea is to put a "menu" icon on the top-left area that opens either a contextual or a full-page menu with all these options.

Having this working would be required for all those other enhancements.

Can't enter dot anymore

I want to format date in "European way": dd.mm.yyyy but the field for date won't accept dot (.) input. I can tap it on the keyboard as many times as I want but it won't show up. Slash (/) however, does work.

Is it something with my tablet settings or did something change with the plugin?

New tasting metadata

Add tasting metadata to shots and the database. Departure point will be the score tasting sheets by James Hoffmann, with some additional dimensions.

Add UI page to manage this data.

Recover profile & settings from past shots

The idea here would be to select any past shot in the Filter Shot History page and have the option to recover that shot parameters for the next shot. This would retrieve the profile that was actually used in the past shot, the bean and drink weights, and the shot metadata (beans, grinder, etc.).

So it would be easy to get some beans you already dialed in last year, search for the best shots you did with them (by enjoyment, EY...) and easily replicate them.

Apply the new beverage_type field

Use this new field in profiles and shots to:

  • Filter profiles by beverage_type in the Filter Shot History page.
  • Change the metadata propagation system so that data from last to next shot must match the beverage type (i.e. for an "espresso" shot, propagate from the last "espresso" shot, jumping intermediate shots if they are e.g. "tea portafilter" or "pour over" shots).
  • Automatically interrumpt propagation (make all description values empty) for "cleaning", "calibration" and "testing" profiles.

Personalization of the DYE page

Each user wants to fill different data fields. It would be good to have the possibility of personalizing the main DYE page so that those fields that are most interesting to each user can be put there, while others are relegated to secondary pages.

Of course, this would be a lot of work to implement. Some of my ideas is to go to a fully parametrized system for metadata entering, which would allow this type of customization and other things, but this is just an emerging idea that I have to really work out. Maybe some day...

Adapt data entry to data analysis needs

Once the main additional metadata is added to DYE, I'm thinking of enabling some setting option to restrict the available input data to sets or fixed categories so that metadata can be used for data analysis. This will likely take a while, though. See Diaspora's Bayesian Bears' project.

Both Fahrenheit and Celsius temperature scale in `espresso_temperature_mix` series data

The raw temperature data collected by DYE doesn't yet convert between Fahrenheit and Celsius, and since users can either set C or F in their machine, the raw data collected are not on the same scale and will cause issues in data analysis.

I found this looking at the histogram of the maximum espresso_temperature_mix series in Visualizer.coffee shots data, it shows that there's a bimodal distribution centered around 90 and 192, indicating that the former is temperature data points in Celsius and the latter in Fahrenheit.

@ebengoechea Could you convert all espresso_temperature_mix, espresso_temperature_basket, espresso_temperature_goal to Celsius if the machine data was set to Fahrenheit, especially before it automatically uploads to Visualizer.Coffee?

New beans metadata

Add new beans metadata in shot files and in the database.

  • Country, region, variety, producer. Multi-valued for blends.
  • Bean batch: buy date, price, freeze/unfreeze dates, quality score, enjoyment.

Add UI pages to manage the new metadata.

Shot data export

Give the option to export individual shot data description and series (to, say CSV files). Or export the whole database to a CSV file.

New equipment metadata

Add "other equipment" metadata in shot files and in the database.

  • New user-defined equipment items classified by type (tamper, basket, filter, etc.), each one with an optional setting.

Add UI pages to manage the new metadata.

Migrate to DE1app extension system

Migrate from a DSx plugin to a (or several?) DE1app plugin(s), without losing any DSx functionallity.

To do that, first try to isolate and decouple DSx-specific functionallity. The objective is to have a skin-independent plugin. The idea is to use simple pages (single-color background, fontawesome icons and as little images as possible) that can easily adapt their general aspect (background, font & colors) to the skin in use.

Auto-upload shots to visualizer

Several users have requested auto-upload to Visualizer as soon as the shot is done.

This is already available on @Mimoja 's Visualizer extension, and I want to directly invoke her extension instead of having the upload functions inside DYE, but this will be done only when the extension goes out of beta and into the stable branch.

Also, for me to do auto-upload it is imperative that DYE allows to re-upload the shot to Visualizer when you change its metadata. Given the current UI, I don't see a clear way of including it in an already crowded page, so I'm waiting till I implement some way of triggering additional actions on shots (see issue #12).

Enlarge shots search criteria in Filter Shot History page

@Damian-AU wanted to be able to search/filter past shots by barista. Given that screen real estate is limited and that page is already full, my idea is to make the two current category search listboxes assigned to "Profile" and "Beans" to be customized with a "dropdown arrow" so that any category field from the shots metadata (bean brand, grinder name, barista, drinker, etc.) can be used as a search criterium.

Shot stats

Capitalize on the fact than we now have a shot database to create a page that shows summary statistics by user-defined criteria.

Examples:

  • Number of shots, total coffee beans used, total coffee consumed...
  • By time period / profile / roaster / barista ...

Other ideas?

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.