Home

Awesome

This package is DEPRECATED and no longer supported. The reason are problems with drainConnection and lack of further support for rethinker

<link href="http://fonts.googleapis.com/css?family=Maven+Pro:400,700|Inconsolata" rel="stylesheet" type="text/css"> <link href='docs/style.css' rel='stylesheet' type='text/css'>

shiny.collections

Google Docs-like live collaboration in Shiny

shiny.collections adds persistent reactive collections that can be effortlessly integrated with components like Shiny inputs, DT::dataTable or rhandsontable. The package makes it easy to build collaborative Shiny applications with persistent data.

<!-- #Basic tutorial article is available on [Appsilon Data Science blog](your_future_art_link). --> <!-- Live demo link below <p style="text-align: center; font-size: x-large;"> <a href="http://appsilon.com/demo">Live demo</a> </p>-->

Source code

This library source code can be found on Appsilon Data Science's Github: <br> https://github.com/Appsilon/shiny.collections

How to install?

Note! This library is still in its infancy. Api might change in the future.

At the moment it's possible to install this library through devtools.

devtools::install_github("Appsilon/shiny.collections")

To install previous version you can run:

devtools::install_github("Appsilon/shiny.collections", ref = "0.1.0")

Example

Before running an example make sure that your RethinkDB is set-up and running. For installation and running guidelines you can visit RethinkDB docs.

library(shiny)

ui <- shinyUI(fluidPage(
  actionButton("click", "Add one"),
  DT::dataTableOutput("cars_data")
))

connection <- shiny.collections::connect()

server <- shinyServer(function(input, output) {
  cars <- shiny.collections::collection("cars", connection)

  observeEvent(input$click, {
    shiny.collections::insert(cars, list(name = "Sample name", value = sample(1:100, 1)))
  })
  output$cars_data <- DT::renderDataTable(DT::datatable(cars$collection))
})

shinyApp(ui = ui, server = server)

Talk

We are proud that shiny.collections gained a lot of interests at useR!2017 in Brussels. Here you can see a talk by Marek Rogala presenting two interesting use cases: https://goo.gl/mD1KfV .

How to contribute?

If you want to contribute to this project please submit a regular PR, once you're done with new feature or bug fix.<br>

Changes in documentation

Both repository README.md file and an official documentation page are generated with Rmarkdown, so if there is a need to update them, please modify accordingly a README.Rmd file and run a build_readme.R script to compile it.

Troubleshooting

We used the latest versions of dependencies for this library, so please update your R environment before installation.

However, if you encounter any problems, try the following:

  1. Up-to-date R language environment

  2. Installing specific dependent libraries versions

    • shiny

      install.packages("shiny", version='0.14.2.9001')
      
  3. Make sure you open the connection outside the server function.

Future enhacements

Appsilon Data Science

Get in touch dev@appsilon.com