Sage-Bionetworks / data_curator

Data and metadata ingress app
Apache License 2.0
10 stars 21 forks source link

Check out rhandsontable for manifest interface #67

Open jaeddy opened 4 years ago

jaeddy commented 4 years ago

I came across this library the other day: https://jrowen.github.io/rhandsontable

Might provide an alternative to Google Sheets (more cohesive UX) and could potentially be more customizable. I'm guessing this would be a fairly large refactor for both the front end and back end, so worth kicking the tires a bit to evaluate whether the change would be worth it.

milen-sage commented 4 years ago

Thanks @jaeddy this is pretty good especially compared to other JS libraries for tables that I've looked at; and it's nice it already wraps 'via'. But perhaps we could view it as an additional interface aside from google sheets, not necessarily replacement for now.

W/in the general context of using spreadsheets as a GUI annotation interface (which I think is clunky/hacky not optimal for this task after going through @lbradic preliminary annotation UI design ideas) gsheets has some advantages that are worth considering:

Some of rhandsontable API features - e.g. dynamic column removal and ordering - would be really useful though, and not present in the gsheet API currently; it would also obviate going through the google credentials and account system - which is a win! Plus - it is open source, free, under our control (that might be a con in some sense, but at least we'd control changes so it'd be more stable over time :), and might integrate more cohesively with Shiny!

A note: if we keep using Shiny as a "data curator wizard" interface integrating rhandsontable might have some issues: https://jrowen.github.io/rhandsontable/#shiny

I'd say let's dig in further - and try incorporating some of their examples in Shiny. Given we already have the logic to process schemas into tabular manifests, I don't think it'd be hard to generate the rhandsontable code as well on my end. Perhaps we can discuss with @xdoan and @sujaypatil96 over the next couple of weeks.

ychae commented 3 years ago

@jaeddy and @milen-sage could you take a look at ticket #174 and let me know if some of what you were thinking of is being addressed there?

milen-sage commented 3 years ago

@ychae rhandsontable is an alternative tabular interface we could use, e.g. for manifest generation. The latter has a dependency on the schematic manifest generation code. It's an interesting idea to explore since schematic is not tied to google manifests - as @rrchai noted we already generate manifests in tabular format and these don't have to be eventually stored as google sheets. This would remove our dependency on google credentials and overall platforms and APIs. I think it's a low priority given we have an existing working option, but it would be an interesting intro project for an intern or a new hire.