How to use pins + Shiny for ever-changing data
Do you manage constantly changing data and need your Shiny app to automatically update?
On August 28th at 11 am ET, Isabella Velásquez demonstrated a streamlined workflow for handling frequently updated datasets in Shiny. You’ll see how to simplify your process for keeping dynamic data current and how to reflect those changes in your app or dashboard.
Github repo to follow along or make it your own! https://github.com/posit-marketing/shiny-calendar
Timestamps:
1:03 – Introduction of the project (end goal: a calendar that integrates with Jira to track and visualize a schedule for managing deadlines of content)
2:26 – Pulling data from an API in Python or R
2:56 – Introduction to pins (and scheduling automatic refreshes of it in Posit Connect)
4:30 – Introduction to Shiny for both Python and R (its power lies in reactivity)
5:10 – Enter pin_reactive_read() function
6:12 – Introduction to Posit Team
6:37 – Opening a new session within Posit Workbench and overview of code needed to create the calendar [Github repo: https://github.com/posit-marketing/shiny-calendar]
12:07 – toastui package used for Calendar (ex: adding colors to labels)
12:47 – Writing clean data to Posit Connect board
13:16 – Rendered Quarto doc for pulling Jira data from the board
14:00 – Deploying Quarto to Posit Connect (using push button deployment) and scheduling to run
16:54 – Using the data just pinned in the Shiny app
21:17 – Overview of Shiny Content Calendar application
23:04 – Creating an issue in Jira board and adjusting schedule in Posit Connect to show new item in Shiny calendar.
24:00 – pin_reactive_read automatically detects change and shows it in the Shiny app
During this workflow demo, you will learn:
- How {pins} stores and retrieves ever-changing data with ease
- How to use pin_reactive_read() in Shiny to automatically trigger updates when your data changes
- How Posit Connect can be set up to rerun your {pin} on a schedule, ensuring your app is updated without disruption How to deploy an always-up-to-date app for seamless sharing with stakeholders
Other helpful links:
- pin_reactive_read: https://pins.rstudio.com/reference/pin_reactive_read.html
- Basic reactivity in Mastering Shiny: https://mastering-shiny.org/basic-reactivity.html#reactive-programming
- Understanding reactivity on the Shiny site: https://shiny.posit.co/r/articles/build/understanding-reactivity/
- Github repo: https://github.com/posit-marketing/shiny-calendar
- Shiny Calendar: https://pub.demo.posit.team/public/shiny-calendar/
If you like these workflow demos, you can join us monthly! They happen the last Wednesday of every month at 11 am ET. Add it to your calendar here: https://pos.it/team-demo