Web App Development in Shiny

Web apps are a fantastic deployment method for sharing data and enabling users to transform it based upon their interests. I learn how to design and deploy web apps with R via the Shiny package.

Project Introduction

The internet was always born from the idea of sharing information and tools. Whether by a local network of computers, as in the early days, or via a world wide network, connecting computers was all about sharing.

I enjoy a variety of data activities but have always wanted the ability to share them. A local file or program is archaic and most often far exceeds the indended purpose. The internet is continually serving more and more users by sharing data via web tools.

A web tool increasing in popularity is a package designed for the R programming ecosystem called Shiny. It provides a framework for bridging the gap between programming in R and the languages needed for the web (html, css, javascript).

If you're new to Shiny, below is a 2 minute introduction:

Shiny isn't the only tool to facilitate easier deployment of web tools. In the Python ecosystem, StreamLit is a popular choice (and one I plan to learn and practice as my Python skills increase).

Deploying data and tools to interact with them to the web for people to use is a major step, in my opinion, for ensuring that the impactful work we love begins impacting people for the better.


Situation

Often my approaches to data projects are about solving a pain point and wanting others to enjoy the solution. A good example is the NBA Advantages Dashboard in Tableau. Tableau already offers an infrastructure for sharing tools and visualizations which made the process easy.

I want to share more of these projects with people who can enjoy them as I do.


Task

To best deploy my data projects and tools to users I need to tailor the situation with the best implementation of the web app. That comes about with learning and practicing different avenues.

"Shiny is an R package that makes it easy to build interactive web apps straight from R. You can host standalone apps on a webpage or embed them in R Markdown documents or build dashboards."


My goal for data projects, similar to those I've written about in this portfolio, is leverage open source tools and the capabilities of a programming tool for customizing the data transformation and the user interface.

For this project and the series of web apps I'll be signing, I'm concentrating my activity to the Shiny package of R.


Action

I'm starting from next to stratch. I've gotten experience with markup in HTML and CSS in building this portfolio website, but building an interactive web app is beyond my current experience.

I'll be relying heavily on the package documentation from R Studio. I've also found excellent resources from Abhinav Agrawal's YouTube channel for working with editable tables.

Mastering Shiny Book Artwork

Ultimately, the goal will be to read Mastering Shiny by Hadley Wickham and learn comprehensively about the package. However, in the mean time, I'm content with learning via projects and exploration.


Result

I've been astounded by what I've been able to create! From a simple app to display a state map of county level population data to a draft app that was featured in a recent hobby video of mine, they are powerful and elegant. I hope to one day design a dashboard-like app from a data source (wardrobe database, perhaps?).

Disney Attractions & Height Restrictions Demo

Most all of my Shiny apps can be explored further below in the "Project Components" section. Unfortunately, not every Shiny project I've completed can be shared here in as great of detail.

However, a particularly impactful app I recently designed for TETON Sports, but employer as of this post, was a tool to evaluate different business models with Amazon (1P vs 3P relationship) for the entire product catalog. It was crucial to weigh a number of perspectives and empower the client teams within TETON to drive change toward more profitable scenarios.


Project Components