This job listing has expired and may no longer be relevant!
10 Jul 2017

Freelance R/Shiny and JavaScript Developer

Leibniz-Institute of Freshwater Ecology and Inland Fisheries (IGB) – Posted by vbremerich Anywhere

Job Description

We are looking for a freelance R/Shiny and JavaScript developer or company to create a new “htmlwidget” package, that allows the integration of the KRONA JavaScript library  in „shiny“ und „leaflet“ projects (description below).

About the project

The MARS project [1] is an international EU FP7 research project that investigates how multiple stressors affect rivers, lakes and estuaries. At IGB [2] we develop an interactive mapping application to visualize the current and future stressor situation in European freshwaters (Scenario Analysis Tool). To allow visualizing data on multiple hierarchical levels (countries, river basins, sub-basins) we are planning to embed KRONA charts in our tool. KRONA [3] allows hierarchical data to be explored with zooming, multi-layered pie charts, that can be created using KRONAtools [4].

Description of Tasks

Part 1

  • Develop a new “htmlwidget” package, that allows the integration of the KRONA JavaScript library in R, particularly in „shiny“ und „leaflet“ projects;
  • and implement bi-directional interactivity between the KRONA widget and the R -„shiny“/ „leaflet“ project,
  • more specifically, compiling a KRONA widget and linking to as well as controlling KRONA functions should be directly possible using shiny’s reactive elements as well as via the R “leaflet” map navigation (e.g. the selection of elements in shiny or the leaflet map creates and/or opens a related KRONA widget; zooming into a level of the KRONA widget focuses and zooms the map to the corresponding element in the “leaflet” map).

Part 2

  • Develop a function to create an XML file from an R data frame to allow the creation of new KRONA widgets from data in R using the KRONAtools function “ktImportText” (https://github.com/marbl/Krona/wiki/Importing-text-and-XML-data);
  • or develop a function to directly create a KRONA widget from an R data frame by adapting one of the existing scripts for the creation of KRONA charts.
  • Develop the possibility to interactively select data rows out of the R data frame that should be displayed in the KRONA widget and to set the ordering of the KRONA levels via “shiny” reactive elements.
  • Adapt the styling of the KRONA widget via the created XML-file or directly in the created widget to distinguish between different states of a variable (here: active/inactive stressors).
  • The ordering of the elements (so far ordered by magnitude descending) should also be adjustable using this variable.

Part 3

  • If it is not possible to set the needed styling variables via the newly created XML-file or in the widget creation function, adapt the existing KRONA JavaScript code to develop the functionalities for creating new, adapted styles, in particular dichotomous styles (for active/inactive elements).

General requirements:

  • The programming code needs to be put under version control and be published under a suitable open source license.
  • Newly developed functions should be properly documented in the code and in a dedicated documentation for the new “htmlwidget” package.

Links

[1] MARS project: http://www.mars-project.eu/

[2] IGB: http://www.igb-berlin.de/en

[3] KRONA: https://github.com/marbl/Krona/wiki

[4] KRONAtools: https://github.com/marbl/Krona/wiki/KronaTools

[5] shiny web application framework for R: http://shiny.rstudio.com/

[6] leaflet for R: https://rstudio.github.io/leaflet/

[7] htmlwidgets for R: http://www.htmlwidgets.org/

How to Apply

To apply, please email the following to [email protected]:
  1. letter of interest with a brief description of relevant skills
  2. resume/CV
  3. an offer with a separate cost calculation for all parts

Job Categories: R Developer. Job Types: Freelance. Job Tags: HTML, Javascript, shiny, and shiny package. Salaries: Less than $100,000.

Apply for this Job