[documentation] Interactive web apps
I'm submitting a ...
Put an x in the appropriate square brackets
-
bug/error report -
feature request
What is the current behaviour?
Two different researchers have separately asked for support in creating an interactive web app. Would should publish some information about how to create these on the community pages!
What is the expected/preferred behaviour?
This issues is to collect that information which I've shared with these researchers. It should next be re-written into something generic and published somewhere. Not sure what topic it would sit under the current structure! Open Data?
Other information: Central University Support
Laurence Brown has a lot of experience on this an is willing to give advice/support.
Other information: Researcher requirements of an interactive web app)
1. Interactive table
Requirement
We'd quite like to share a table online as a tool people can interact with and get information from, copy data out of etc (like in an google/xls spreadsheet where you can sort by different columns etc) - it would be not the usual written-up publication format but rather a shared data table summarizing parameters from many previous studies that we have put together.
Advice
You could do this with either a Jupiter notebook and binder, a shiny app if you’re using R, or a heroku app (free to host as a single app).
I’ve found this example of a data table hosted using heroku, where clicking on the column header sorts the rows (I’m sure you could do more sophisticated things too). This r-shiny example looks very cool too, and perhaps more what you’re looking for?
These are the more 'high-tech’ code heavy options, but if you’re not feeling confident going down this route it would still be entirely valid to share it as a nicely commented csv on OSF (as I have done here). Less upfront work for you (and you still get a citable output), but more limited in the end user experience.
2. Data simulator
Requirement
We'd like to put up a ‘live’ version of one part of the code in our manuscript – this particular paper would lend itself well to a sort of online simulator that people could run in a browser and play around with, like one of our other colleagues has done here: http://shapegen.herokuapp.com/
Advice
You could do this using a Jupiter notebook and binder, or a shiny app if you’re using R or a heroku app.
My instinct is the binder option will be less overhead to get it working but potentially less “slick", whereas the heroku app can be prettier (another example here) although may be more work to get started?
Response - Researchers
We prefer the slicker version, like the Heroku app we sent you. Mostly because we think the easier the tool is to use, the more it will be used.
The only thing is that in our experience, the (free) hosting by Heroku is quite slow, which doesn't help with the user experience. Are you aware of any (paid) services that the university promotes to use?
Response - Laurence Brown
My experience is mostly with Python’s Panel library (https://panel.holoviz.org/index.html), which will let you create small dashboards and apps, including from a Jupyter notebook (A very brief example here in notebook 2D https://github.com/LozRiviera/LAB_Intro_Jupyter)
There are a number of hosting options, including Heroku, but I succeeded with AWS on their free tier for a while. https://panel.holoviz.org/user_guide/Server_Deployment.html
We also have free university hosting of R-Shiny apps (https://idn.it.ox.ac.uk/idn-shiny-service) (I have a small amount of Shiny experience) This has a bit more resource behind it.
I agree web apps on free resources can be slow. Binder is always a good option, but is on free/donated resources, so again they often have to be frugal. Sometimes this is due to the hosting instance, but it can sometimes be improved by limiting data or options to reduce certain behaviours in the browser.
There may also be options with Matlab (if that was the original code) and via PowerBI, which the University currently licence.