Giter Site home page Giter Site logo

miharekar / visualizer Goto Github PK

View Code? Open in Web Editor NEW
84.0 6.0 12.0 5.81 MB

A visualizer for .shot files

Home Page: https://visualizer.coffee/

License: MIT License

Ruby 51.57% Slim 8.96% JavaScript 5.86% HTML 28.41% CSS 1.85% Shell 0.05% Dockerfile 0.48% Tcl 2.81%
espresso decent visualizer charts ruby rails hotwire importmaps decentespresso

visualizer's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

visualizer's Issues

Show both resistence lines?

This Request reached me via Email:

By looking and checking my shot of the [DATE] i have noticed a little difference to what is see on the tablet of my DE1. On the tablet i have two Resistance-Lines, one dashed and one solide line. 
On the Visualizer however i have only the dashed one and i could not fine a check box where i would enable a solid line. So, how can i make this solide line be visible too?


You can check this example on the visualizer, i should be visible there. I am the guy with the icon i have put in the attachment [Private Info]

In the attachment you also find a picture of the screen of my tablet showing the date / graph of the according shot.


Many thanks in advance for checking my request and for your feedback.



With only the best wishes and regards,
XXX

Johanna

<prev> and <next> buttons in the shot details page

From Decent Forum

I have a suggestion for the shot details page in Visualizer: would it be possible to add and buttons, to quickly go to the previous or next shot in the list, rather than having to go back to the list and click on another shot? That would be so cool.

Are there Instructions for running Visualizer locally?

Is your feature request related to a problem? Please describe.
I'm interested in running a local instance of visualizer. I can see there is a dockerfile, but there are no instructions on how to configure the container.

Describe the solution you'd like
An example docker run command that includes the right parameters to run visualizer. In particular, is there a way to disable the redis and AWS requirements when running locally?

Describe alternatives you've considered

Additional context

Decent plugin uploader overwrites edited notes

Describe the bug
Despite editing and saving info / notes, shot data gets reset to original (blank).

To Reproduce
Steps to reproduce the behavior:
Occurs randomly.

Expected behavior
After saving edited shot with notes, it should not revert back to the original "blank" state.

Desktop (please complete the following information):

  • OS: Windows
  • Browser: Chrome

Smartphone (please complete the following information):

  • Device: iphone12 mini
  • OS: iOS14
  • Browser Brave
  • Version [e.g. 22]

Additional context
As mentioned by Miha on Decent Basecamp, issue is likely due to shot being UPLOADED again, rewriting the saved changes.

  1. Not sure why shot is being uploaded AGAIN (from my decent app)? Is it a plugin/extension issue ?
  2. Possible NOT to overwrite?

Backend: Ability to correct Roaster and Bean Titles

With many users uploading to visualizer, there's inevitably some data issues that are occurring. I'm seeing typos in coffee bean notes (Jelly Donut vs. Jelly Doughnut vs. Luna Jelly Donut) and similar issues in the Roaster field.

Describe the solution you'd like
It would be awesome for some users to have the ability to curate and convert names to the correct ones. For example, switch all the Jelly Doughnut labeled shots to Jelly Donut. Obviously this would not place complete reliance on the info uploaded by users but allow for better searching and more consistent data management.

Thumbnails of shots

It would be really useful for me if there were thumbnails of the charts on the overview page. It would help to find a special shot.

Dark/light skins go with OS settings

Is your feature request related to a problem? Please describe.
Halo Miha, saving compliments that you've heard tons to your works 🙌🏻 I wonder if adding a third option of "Go with OS settings" under Skin is viable, where dark and light skins would be toggled automatically with browser themes (dark mode or not). Seems a prevalent, if not standard, approach of setting apps' themes.

Describe the solution you'd like
I would've done a PR if I'm a bit more familiar with Slim template and Ruby 🥲, but essentially, given major supports on media query prefers-color-scheme from modern browsers, it shouldn't be too much of a dark art these days to toggle between dark and light style sheets based on the value dictated by current OS/browser theme.

Describe alternatives you've considered
There could be many other ways to implement this (reference).

Additional context
Nothing major on top of the already amazing visualizer obviously, but just thought it could go one tiny step further (hopefully without too much efforts 😛).

Time does not match on compare

Describe the bug
When comparing two shots, the shots time does not match up. One of the shots are compressed on the timeline.
When looking at the two shots on their own, the shots time matches and Keith's shot runs 15 seconds longer.
In the compare it looks like my shot stops at 2 minutes.
If I compare two of my own shots, there are no issues with time being align

To Reproduce
Steps to reproduce the behaviour:

  1. Go to https://visualizer.coffee/shots/22b1a96b-9bb8-456d-a6a6-18199453c9b7/compare/ea328381-d703-45fd-bed7-9fad41b0e43c

Expected behaviour
Shots should align on the timeline.

Screenshots
compare

Keiths

Mine

Desktop (please complete the following information):

  • OS: Pop OS
  • Browser Firefox 92.0 & Chromium 97.0.4692.71
  • Version [e.g. 22]

Hide time/date information

Is your feature request related to a problem? Please describe.
I'd love to leave my profile open for anyone to check, but I would love to have a privacy option to hide date and time of the brew. To switch it on or off.

Describe the solution you'd like
A switch to enable/disable showing timestamp, like the following:

Describe alternatives you've considered
I don't really think there could be alternatives 🤔

Additional context

Mockups

Feature

image

Single shot page

Just some data rearrangement to fill the gaps the timestamp would leave

image

Decent People shot's page

Same as previous, getting rid of the timestamp and showing the profile instead

image

Display in Fahrenheit

I already do the conversion to Celsius so it should be possible to display in Fahrenheit via profile settings.

Problems with Visualizer upload

I met some problem with the visualizer_upload extension in DE. I am sure I use the right user name and password but it still tells me "Upload failed!ERR could't open socket: permission denied."

the DE app version is v1.38.6.7 nightly, and I am sure the network is ok.

by the way I just use a MI tablet replace the old one which DE gave. the function in DE tablet works well.

Incorrect temperature unit display

Describe the bug
My DE1 works in Celsius, and my uploaded shots look correct to my eye. However, I just found a profile that I wanted to compare to and it seems to be the user tracks their shots in Fahrenheit. Visualizer shows the raw data as fahrenheit numbers put puts a "Degrees Celsius" label on it.

To Reproduce
Steps to reproduce the behavior:
Go to https://visualizer.coffee/shots/703489a7-41b9-4901-a241-8a521f7a7ac0 and look at the temperature curves.

Expected behavior
A few options. :)

  1. Visualizer shows the right units (easiest fix, likely)
  2. Visualizer converts the units to the one true unit of measurement, metric, of course. ;)
  3. Visualizer allows users to specify in their profile what their preferred temperature unit is, and then converts all units to the user's preference. (hardest fix)

Screenshots
image

Desktop (please complete the following information):
Windows10, Edge browser

Timelines difficult to distinguish in comparison view

Is your feature request related to a problem? Please describe.
In the chart display (esp. when comparing shots) some of the timeline colors are extremely similar (even more so in the temperature chart).
It's quite difficult to know which line is what.

Describe the solution you'd like
On hover the timeline under the cursor should be highlighted in the popup (e.g. displayed in bold).

Describe alternatives you've considered
Use more distinct colors or rethink the use of line styles for comparison charts (e.g. the comparison values could use the same color in dotted / dashed form...)

Additional context
n/a

"Getting started guide" to setup the dev env

Is your feature request related to a problem? Please describe.
Not actually a problem but, it is not easy to setup a dev env to implement and test some ideas.

Describe the solution you'd like
Please provide a brief guide describing the build, test, deployment steps.

Describe alternatives you've considered
None I can think of.

Additional context
Maybe because I'm not a ruby guy, or a web developer, it was a quite hard time deploying the app on the heroku cloud and seeing it running. Seems some undocumented env variables and DB configurations are there as a prereqeuisites. It would be really helpful for whom are intended to implement/offer their ideas.

Deploy on NAS

Not sure if this possible deploy this on my synology NAS server via docker? Instead of using AWS.

Show EY of shot in list view

Is your feature request related to a problem? Please describe.
When I try a new Decent profile or new beans, I often check and see past shots uploaded in Visualizer. Especially, shots which contain EY (extraction yield) value are very interesting for me. But there is no ways to find EY included shots, I feel inconvenience a bit.

Describe the solution you'd like
I want to see EY (extraction yield) value at the second line of INFO column in the list of shots if available. Not only the list of my shots, I also want to see it in the result view of Search feature.

Screen Shot 0004-01-16 at 14 57 40

Describe alternatives you've considered
If Search feature provides a checkbox of "Has EY", my usecase will be more convenience.

Streamline data entry process

Is your feature request related to a problem? Please describe.
Adding data to shots is currently a clickfest, requiring at least two clicks per entry.

Describe the solution you'd like
The process could be streamlined by replacing dropdown menus with select elements / option groups.
This at minimum halves the amount of clicks need. At best it removes the need to click at all, if most often used/latest used/most often in the last N shots used option is selected by default.
A text entry field with dropdown could be one of the options to hold less frequently used options and allow for the entry of new options.
The number of directly selectable options should probably be held small (3-5) to save space.

Describe alternatives you've considered
Using a browser extension to auto-fill fields.
This works in cases where always the same value is entered, e.g. if someone always uses the same grinder.
It fails where multiple values are relevant.

Auto-populating the text entry fields with default values.
This is still useful but leads to more clicks than the suggested solution.
It also requires the dropdown menu to contain all entries instead of showing a filtered list, at least as long as the default is unchanged by the user.

Additional context
The less work data entry is, the more likely people are to enter data, improving the value provided by the service.

Improve searching own shots

Chris brought this up recently and I want to somehow merge "mine shots" search with global search.

Currently, you can filter your shots by roaster and bean, but it's cumbersome (via links only) and somewhat hacky: lots of exceptions inside pagy for this to work.

Breaking change in Turbo

Describe the bug
Turo introduced a breaking change in 1.4.0 that requires an explicit tag for links within turbo frames (to indicate if it should do a full navigation or load in the frame). This is visible in the "recent" tab on visualizer when clicking the "view" link.

One fix for this would be to add data-turbo-action="advance" target="_top" to the turbo-frame that contains the links which are expected to do a page navigation.

To Reproduce
Steps to reproduce the behavior:

  1. Go to /shots
  2. Click on "recents"
  3. Click on "view"
  4. "Not Found" shows up with an error from turbo in the console instead of being navigated to the search page.

Expected behavior
The page should navigate to the search results

User slug for newly created accounts?

Is your feature request related to a problem? Please describe.
When creating a new account via email, account does not have yet have a profile name. Thus, the user profile slug appears to be permanently set at account creation to a numeric value rather than a nice geeky URL.

E.g. my profile url for a newly created account is https://visualizer.coffee/people/-1143 -- upon setting a user "name", this slug does not update to something nice like https://visualizer.coffee/people/myname.

Describe the solution you'd like
Ideally, user can manually adjust profile slug via field profile settings.

Describe alternatives you've considered
Slug is regenerated when user name field is edited.

Additional context
N/A

Add timestamp to shot files in visualizer

At this time the visualizer files do not have the timestamp of the shot, even though it is stored in the system and is attached to each shot in the interface. It would be very useful to have the timestamp when downloading each visualizer shot file.

Comparison timing slider should have a scale/unit measure

Is your feature request related to a problem? Please describe.
I understand the comparison slider was a big feature in v3 but I didn't understand what the measurement is just by looking. My rough intuition is that it's intended to let me offset the graphs to line up each shot based on the "expected" profile shapes but I don't know for sure what the slider is doing relative to the time scale

Describe the solution you'd like
Add the timing offset (in milliseconds) as a tooltip or adjacent to the slider, to better understand how I'm adjusting the offset of a shot.

Describe alternatives you've considered
I understand that getting an exact time scale measurement might be hard. Maybe a hover tooltip or something to explain the feature? It's very prominent on the comparison page and I had to dig around to find out what it does.

Additional context
Add any other context or screenshots about the feature request here.
image

Rating Score Placement

030BE68F-5192-4963-AD9B-C68A15640277

As you can see the placement of the rating score takes up a significant chunk of useable space in responsive mobile view. Can we look into moving in elsewhere?

Only the last 50 shots are showing

Describe the bug
My 51st and 52nd shot is not showing on my shots page on visualizer.coffee. The plugin settings page on the DE1 did indicate that it has been uploading shots

To Reproduce
Steps to reproduce the behavior:

  1. Pull a shot on the DE1
  2. Go to https://visualizer.coffee/shots
  3. No shots after my 50th are visible

Expected behaviour
All shots within the past month should be visible on the free tier (at least that was my understanding of the page). If this 50 shot limit is expected, it would be nice if it was documented somewhere.

Shots missing

Visualizer shows a count for me of 645 shots. However, I only have two pages of shots visible to me. I can't see any shots earlier than April 1, 2023. I can search older shots by bean or brand that I have pulled & they show up.

RSS option for user views

Is your feature request related to a problem? Please describe.
I have no way to subscribe to updates for a person's public profile.

Describe the solution you'd like
I want the ability to subscribe to an RSS feed of a public profile so that I can use a traditional RSS feed reader library to be notified of new data.

Add option to use colors that color blind people can make sense of

As a colorblind user, the graphs are very hard to read. Specifically, it is very hard to tell the difference between the various series in the graph. Additionally, the temperature graphs are extremely hard as it seems they are similar shades of the same color.

Here’s a good document that shows best practices:

https://davidmathlogic.com/colorblind/#%23D81B60-%231E88E5-%23FFC107-%23004D40

As a new decent owner, it has been extremely frustrating to try to analyze the graphs. Please make this a better experience for color blind users!

Add download for all or multiple selected shots

Is your feature request related to a problem? Please describe.
After collecting multiple shots, say hundreds or thousands I would like to download them all, or a selected set of them quickly. Right now the only download option is to open each shot and download it from there, which takes a lot of time.

Describe the solution you'd like
I would like to have a "Download all shots" button to download all shots at once.
If possible, I would also like to have an option to select a number of shots and download the selected ones.

Additional context
I am doing machine learning experiments with the information contained in shot files (.tcl files), and would like to download the files quickly.

Unable to authenticate from decent extension

Describe the bug
Not able to authenticate via the decent extension.
Any combination of username and password always results in: Authentication failed. please check username / password

I am able to successfully authenticate via web with the same credentials that do not work in the extension.
Additionally, as a debugging step I reset my password, tested the login on web, then tested again on the extension with the same result. Not able to authenticate.

To Reproduce
Steps to reproduce the behavior:

  1. Go to settings > Extensions
  2. Enable the "Upload to visualizer" extension
  3. Tap on the settings cog
  4. Enter your username and password

Expected behavior
Should be able to authenticate with correct credentials

Additional context

  • Extension Version 1.2
  • Decent DE1PRO
  • Stable software channel
  • Firmware up to date

Allow field editing across multiple shot records

If I make 15 shots from one bag of coffee, I'd like a way to select a group of n shots with checkboxes and then edit common fields and apply the values to the selected shots.

This will allow me to set the same coffee details for all the shots in one easy step instead of 15 time consuming steps.

Thank you for this great service and tool! Paying member.

Enhancement request: Defaults for grinder, new field for burr with defaults plus other suggestions

Would be great to be able to set my default grinder to be used with all profiles.
Also, burr being used with defaults. Example Baratza steel burr vs ceramic.

A heart icon or favorite icon would be great to label those shots you really liked.

Longer-term:
At some point, it would be great to collaborate with Nic on his web based profile editor. (discussed on diaspora)
If profiles could be uploaded there and linked to from your site that would be helpful. Maybe even you can collaborate and push profiles to his project from your site.
Often tweaks are done to default "base" profiles. So it would be good to show those deltas from the base profiles and perhaps upload both the base profile and or the changed profile derived from it to Nic's project.

Nice to have but probably lower priority: Bulk edit of some sort. Once I have the ability to set burr for all shots I'd want to have some way to easily apply to multiple shots.

Feature request: Searchable Bean Notes or similar generic search functionality

Is your feature request related to a problem? Please describe.
I attempted to create a "tag" in Bean Notes that would link together certain shots, in this case, shots from beans resulting from a recent freezer swap. Realized, however, that Bean Notes aren't searchable.

Describe the solution you'd like
Simplest thing (without diving into the backend) seems like would be adding "notes" as a search field.

Something that's probably way more involved would be something like adding a "tags" field that, when a tag is specified, would automatically link to a list of all shots with that tag. (Was this implemented at some point for bean brand? I have a vague recollection)

Describe alternatives you've considered
Manually altering the url to include bean_notes=foo did not work 😅 . Adding the tag to bean_type field would work but that's already a bit of an overloaded field with origin, region, varietal, process...

Endpoint to get User Information

Is your feature request related to a problem? Please describe.

When developing an application that will authenticate with oauth to visualizer.coffee, it will be useful to have an endpoint that shares some information about the user, such as a unique ID, their name, their profile image, and (maybe, if the user grants access) their email. Email is only really important if a third party is developing an app where maybe in the future they want to move off of visualizer.coffee oauth (maybe the service goes away?)

Describe the solution you'd like
/oauth/user (or whatever) endpoint that allows you to authenticate, and returns JSON, something like...

{"name": "name", "email": "[email protected]"} etc..

Describe alternatives you've considered
Not sure if there are any!

Allow sliding the timeline in comparison mode

Is your feature request related to a problem? Please describe.
One of the challenges in comparing shots is sometimes they're time offset to one another - for example, PI exit on one shot is 2 seconds later than another, and so when comparing you're not looking at comparison in solely y-axis, but you also have to figure out your time comparison as well.

Describe the solution you'd like
It would be awesome if -- while in a comparison view -- the user could drag left/right to move the 0-point on the time axis for the comparison shot to see them overlaid on a common time domain based.

Describe alternatives you've considered
No alternatives.

Additional context
The X-Axis labels probably relative rather than absolute in this mode.

ScreenshotTakerJob seems backed up or could be failing

Describe the bug
Since 2021-04-08 (9pm UTC is the first I noticed), I've noticed a long delay in screenshots being taken/uploaded. When using the /api/shots/:shot_id/download API or visiting the page, the cloudinary URL in the image_preview and tag respectively are missing. These used to happen quite quickly after the shot was uploaded.

Looking at a recent shot that eventually uploaded a screenshot:

curl -vvv https://res.cloudinary.com/hnjzt5yxu/image/upload/screenshot-913bef8c-bdfe-4416-8b24-e50bab66f684_deryne 2>&1 | grep 'last-modified'
< last-modified: Tue, 13 Apr 2021 19:23:54 GMT

To Reproduce
Steps to reproduce the behavior:

  1. Upload a shot
  2. Go to the shot page
  3. Refresh after some time
  4. Observe that the meta tag with property="og:image" does not yet exist. In Chrome console, can query for the DOM node using $('meta[property="og:image"]')
    image
  5. Observe that calling the API /api/shots/:shot_id/download also does not return an image_preview field.

Expected behavior
I would have expected the screenshot to be taken and uploaded within a shorter timeframe (on the order of a few minutes).

Link 'Bean type' to 'Bean brand'

Describe the solution you'd like
A quick QoL request. My "Bean brand" drop-down choices are growing and it's cumbersome to find the appropriate selection. When creating a new "Bean type", would it be possible to connect it to the selected or inputted "Bean brand" so that when a user selects their brand for a future shot, the "type" is directly related?

I may not be using "type" as intended but if other users are keeping it simple (ie. varietal only), they would just need to enter the varietal once each time they try a new release from a particular brand.

Describe alternatives you've considered

  1. leave as is and scroll through a massive list of bean releases
  2. break bean type out into 'release' and 'varietal' (and processing?) selections/inputs

Add search box for Drink TDS (Total Dissolved Solids) and Drink EY (Extraction Yield)

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

please add the ability to search for Drink TDS (Total Dissolved Solids) and Drink EY (Extraction Yield)

Describe the solution you'd like
A clear and concise description of what you want to happen.

A filter option to refine your search.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

Store barista/drinker info

  • required for the pro/cafe use
  • some users report using it daily

Would probably need to expose it.

Def needs to be able to filter/search by these fields.

Make notes private

I‘d like to make my shots public. But I don’t want to share my notes. They are verbose and not for interest to the public. Thus I’d appreciate an option to make notes private if everything else is public.

Additional input fields to describe coffee Origin, Varietal and Processing method

Visualizer could use additional input fields to describe the coffee more accurately.
Origin, Varietal and processing method are widely used by good coffee roasters to accurately describe the green coffee they used for the roast.
Additionally the Farm where the bean was produced, The farmer or producer of the beans and producing region of the country could be valuable information also.

Some users use the current "roast date", "roast level" to make these inputs but that is not ideal.
image

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.