r params$repo_name

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.

Source code {.darkslide}

This library source code can be found on Appsilon Data Science's Github:
r params$repo_url

if (params$type == "web") {
  cat(paste0('<script>
    document.write(\'<div class="logo"><a href="', params$website_url, '"><img alt="Appsilon Data Science" src="', params$logo_url, '"/></a></div>\')
    </script>
  '))
}

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/`r params$repo_name`")

To install previous version you can run:

devtools::install_github("Appsilon/`r params$repo_name`", ref = "0.1.0")

Example {.darkorange}

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.

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 {.darkslide}

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 {.footer}

if (params$type == "web") {
  cat(paste0('<script>
    document.write(\'<div class="logo"><a href="', params$website_url, '"><img alt="Appsilon Data Science" src="', params$logo_url, '" /></a></div><div class="subheader"> We Provide End-to-End Data Science Solutions </div>  \');
    </script>
  '))
}

Get in touch dev@appsilon.com

if (params$type == "web") {
  cat(paste0('<script>
    document.write(\'<a href="', params$repo_url, '"><img style="position: absolute; margin: 0; top: 0; right: 0; border: 0;" src="https://camo.githubusercontent.com/38ef81f8aca64bb9a64448d0d70f1308ef5341ab/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f6461726b626c75655f3132313632312e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"></a>\');
    </script>
  '))
}


Appsilon/shiny.collections documentation built on Nov. 20, 2019, 5:39 p.m.