Code Monkey home page Code Monkey logo

shinysense's Introduction

shinysense

A series of shiny modules to help shiny sense the world around it.

It's called shinysense because shinyinputs seemed kinda lame.

Senses present:

Currently the package supports the following 'senses'.

Touch

  • drawr & shinydrawr: Draws a line chart that obscures the end of the results, the user then draws what they think the rest of the chart is and then the rest of the chart is revealed.
  • shinyswipr: Embeds a card that can be swiped in different directions, the swipe direction is returned to shiny.

Vision

  • shinyviewr: Record images from a webcam or any other camera connected to browser viewing app.

Hearing

  • shinylistenr: Records audio on a button press and returns the fast-fourier transformed signal to the server.

Motion

  • shinymovr: Capture and return accelerometer data from your phone or tablet.

Testing it out

Every sense included in the package has a demo app. To run the demo app you can run the included function run_demo() and pass it the name of the function you want to see.

E.g.

shinysense::run_demo('shinyviewr')

This will run a basic demo application that includes the code behind the app. Giving you a jumping off point for including the function in your app!

Available demos include

  • 'shinydrawr'
  • 'shinyviewr'
  • 'shinyswipr'
  • 'shinymovr'
  • 'shinylistenr'
  • 'draw_your_dist': A demo app using shinydrawr to fit a beta distribution to a drawn line.

How do I use it?

shinysense is not currently on CRAN. To install it use the devtools github function.

devtools::install_github("nstrayer/shinysense")

Once the app is installed just included it in your shiny app the way you usually would:

#my super cool shiny app
library(shiny)
library(shinysense)

Naming Scheme

The names of the functions follow a few general rules.

  • The shiny-based functions are all prefixed with shiny. E.g. shinyswipr, shinydrawr...

  • Of those shiny-based functions there are two functions per sense, the server function (just plain name), and the UI function, which has _UI appended to the end.

Note that if you used shinysense in earlier versions, this naming scheme was inconsistent, I sincerely apologize for any frustration this may cause!

  • For functions that work outside of shiny there is no shiny prefix.
    • Currently this only includes drawr which allows you to embed a you-draw-it chart in a static report, and run_demo which starts up the demo apps for the various senses.

Browser security

Recently browsers have been making large steps to protect user's data. This is great, however, it means that it can sometimes be tricky to get these applications working. Almost everything will require a secure connection to work. Secure connection generally means two things: one the website address includes https:// at the front, meaning that all data passed between the browser and server is encrypted, or the app is being run locally and accessed with localhost.

The easiest way to experiment with these functions is to run a local RStudio instance on your laptop or desktop and then run the shiny app in the browser. When hosting an app for public consumption make sure you have an ssl encrypted server (I.e. https).

A workaround for using RStudio Server on a remote server that is not secured with https is to do port forwarding with the ssh command. E.g. ssh -L 127.0.0.1:8787: 127.0.0.1:8787 me@my_servers_address. This will allow you to use localhost for your apps.

Nothing works, what do I do?

The probability of there being bugs in these functions is unfortunately high. If you've found one I would be delighted if you could file a new issue here. I'll try my best to at least respond.

shinysense's People

Contributors

1wheel avatar carlescg avatar chalioui avatar muschellij2 avatar nstrayer avatar simonlarsen avatar

Watchers

 avatar

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.