Shiny Web Applications Part 1
Build a predictive web application using Shiny, Flexdashboard, and XGBoost
Enroll in CourseBuild Web Apps with Machine Learning
The web application you learn how to build uses data science to predict new product prices!
Predictive Web Applications Productionalize Data Science
A data scientist generates organizational value by building web apps that take machine learning models into production.
Here's an example of a predictive web application that you build in this course.
New Product Prediction Application (created in this course)
This web application empowers business people to make data-driven decisions by more consistently pricing products. The application incorporates:
- Shiny - A web application framework with UI components that are reactive to user input.
- Flexdashboard - A dashboarding framework that is built on top of RMarkdown.
- parsnip and XGBoost - Machine learning models used to predict product prices.
Most importantly, business people can use the application to improve the consistency of new product prices based on an existing product portfolio thanks to the power of Machine Learning!
Your Organization Cares About Branding
So give it to them. Learn how to customize the appearance of your application to match your organizations branding.
Final Project
You will build a Sales Dashboard that:
- Uses XGBoost to Predict Sales Demand by Customers & Product Categories.
- Toggles between Light and Dark Themes - Customized by You and your theme-building skills!
- Controls flow using Reactive Programming
- Will be distributed via Shinyapps.io
Final Project
Dark Theme
This course is designed for...
- Beginner data scientists that have completed the Data Science for Business Part 1 course and want to build predictive web applications
- Intermediate data scientists familiar with R but want to learn Shiny and Flexdashboard
You build production-ready applications
Get started now!
3-Step System
Follow a 3-step learning path:
- Build your knowledge of core concepts with a Sales Dashboard
- Extend your knowledge of Machine Learning and advanced techniques into Price Prediction Application
- Customize the end product with theme and logos
Course Roadmap
Experience the innovative 3-Step System!
Step 1: You'll start by creating a Sales Dashboard
Creating a Sales Dashboard exposes you to reactive programming. You will apply complex rules to control how your application functions when users interact with the app.
You gain experience using:
- Shiny
- Geographic Data
- Time Series Data
- Interactive Plots
- Reactive Programming
- Observing Events & Controlling Flow
Step 2: Next, You Create A Predictive Web Application
You will build a new application that integrates Machine Learning (XGBoost) along with a more complex interactive visualization.
You learn how to:
- Integrate machine learning (parsnip and XGBoost) into a Web App
- Modularize code into functions
- Create advanced interactive charts
Step 3: You finish by Customizing Your Web Application
Your company's brand appearance is important. Make an app theme that is consistent with the look and feel of your organization's branding.
Create Your Own Theme Using HTML & CSS
Use Google's Chrome Inspector
You will:
- Learn to use Google Inspector for inspecting web pages
- Add logos
- Adjust the theme with CSS
Business Objective: Use Data Science to More Consistently Price Products
The Business Problem:
Businesses can lose customer confidence and profitability if products are inconsistently priced.
The Solution:
This web application solves the inconsistent pricing problem by using predictive analytics to generate new product prices based on existing products.
The application is easy to use, and best of all, an app like this generates business value for your organization!
Tools & Frameworks We Provide
We provide you:
- A Complete Learning Path to taking you from basic knowledge of R to being able to build and deploy interactive, machine-learning powered web apps
- A Cohesive Tool Chain that includes shiny, flexdashboard, shinyWidgets, and shinyjs
- Comprehensive resources: You are provided a cheat sheet, code templates, and resources that speed up learning and make referring back to materials simple.
- Full Life-Time Access: Once you purchase the course, you gain life-time access to content now and any updates in the future.
- Access to our Private Slack Community where you can access Matt (the course instructor) and network with other students.
Summary of What You Get!
- Methodical training program that teaches you how to build web applications using Shiny & Flexdashboard
-
2 Web Apps That You Can Productionalize ($5000 value)
- Sales Dashboard - Exposes you to Geographic and Time Series data along with learning reactive programming with Shiny
- Product Prediction Application - Integrates Machine Learning (XGBoost) and advanced visualizations
-
Hundreds of Resources($1000 value):
- ULTIMATE R CHEAT SHEET - The New & Improved Version 2.0
- 100+ Video Coding Lessons
- 7 Key Resources
- 2 Challenges
Adding it up: $6,000 value
Purchase today for: 👇
*Price excludes local taxes & VAT
Get started now!
Your Instructor
Founder of Business Science and general business & finance guru, He has worked with many clients from Fortune 500 to high-octane startups! Matt loves educating data scientists on how to apply powerful tools within their organization to yield ROI. Matt doesn't rest until he gets results (literally, he doesn't sleep so don't be suprised if he responds to your email at 4AM)!
Course Curriculum
-
StartFlexdashboard Setup (1:35)
-
StartLibraries (1:23)
-
StartDatabase Connection (4:02)
-
StartJoining Data Using The SQLite Backend - Part 1 (5:00)
-
StartJoining The Data Using The Database Backend - Part 2 (4:12)
-
StartProcessing Data: Final Preparations for the Map (2:20)
-
StartAdding A Section To The App (1:59)
-
StartMaking the Plotly Map, Part 1: Plotly Chloropleth Maps (1:39)
-
StartMaking The Plotly Map, Part 2: Aggregation By State (3:01)
-
StartMaking The Plotly Map, Part 3: plot_geo() (2:37)
-
StartMaking the Plotly Map, Part 4: add_trace() (3:27)
-
StartMaking the Plotly Map, Part 5: layout() (3:14)
-
StartCode Checkpoint
-
StartResources #3: Shiny Cheat Sheet (8:18)
-
StartResource #4: Shiny Widgets Gallery (1:40)
-
StartResource #5: HTML Widgets Showcase (4:47)
-
StartResource #6: shinyjs (2:05)
-
StartShiny Tutorial App - Overview (5:18)
-
StartCheckbox - checkboxGroupInput() (5:37)
-
StartCheckbox - renderPrint() & textOutput() (7:19)
-
StartDate Range - dateRangeInput() (5:12)
-
StartDate Range - renderPrint() & textOutput() (2:41)
-
StartSlider - sliderInput() (3:49)
-
StartSlider - renderPrint() & textOutput() (2:34)
-
StartReactive Filtering - reactive() (5:48)
-
StartData Table - Interactive Tables with DT (5:26)
-
StartReactive Expressions: Adding More Inputs to reactive() (5:27)
-
StartReactive Summarization: DT (5:17)
-
StartReset Button, Part 1: actionButton() (2:29)
-
StartResource #7: Font Awesome (1:16)
-
StartReset Button, Part 2: observeEvent() (7:31)
-
StartCode Checkpoint (File Download)
-
StartSales Dashboard: Setting Up For Shiny (4:25)
-
StartshinyWidgets (2:08)
-
StartData Preparation (7:10)
-
StartBike Type Selector - shinyWidgets::checkboxGroupButtons() (6:26)
-
StartBike Type Selector - reactive() & renderPlotly() (6:34)
-
StartBike Family Selector - shinyWidgets::pickerInput() (7:03)
-
StartBike Family Selector - reactive() filter (1:20)
-
StartReset Button: actionButton() (6:22)
-
StartCode Checkpoint (File Download)
-
StartTime Series Plot: Game Plan (1:03)
-
StartFlexdashboard Layout: "Over Time" Section (1:35)
-
StartData Preparation (6:56)
-
StartMaking the ggplot Geometries (5:45)
-
StartFormatting the ggplot (2:53)
-
StartAdding Interactivity: ggplotly() (1:26)
-
StartParameterizing The Time Unit (2:02)
-
StartNext Steps: Reactivity (0:55)
-
StartCode Checkpoint (File Download)
-
StartAdding Reactivity: Game Plan (1:32)
-
StartAdding Reactivity, Part 1: Date Range Input (5:55)
-
StartAdding Reactivity, Part 2: renderPlotly() (2:04)
-
StartAdding Reactivity, Part 3: Connecting the Category 1 & 2 Inputs (4:46)
-
StartAdding Reactivity, Part 4: Date Aggregation with Radio Group Buttons (8:40)
-
StartAdding Reactivity, Part 5: Connecting the Date Aggregation Buttons (0:40)
-
StartFinishing Touches (2:24)
-
StartNext Steps (0:45)
-
StartCode Checkpoint (File Download)
-
StartApply Button: Reactive Programming Overview (2:09)
-
StartAdding the Apply Button: actionButton() (1:56)
-
StartReactive Button Click: eventReactive() (5:19)
-
StartLoading Plots When Firing Up The Application (3:07)
-
StartWelcome to shinyjs (0:59)
-
StartSetting Up shinyjs in RMarkdown (2:25)
-
StartReset Button: Update Time Aggregation Buttons (2:39)
-
StartReset Button: Click "Apply" with shinyjs (4:05)
-
StartReset Button: Delay "Apply" Click with shinyjs (2:30)
-
StartRecap (1:12)
-
StartCode Checkpoint (File Download)
-
StartWhat You Build (0:53)
-
StartSetup & Layout (3:30)
-
StartMaking Value Boxes: valueBox() (3:33)
-
StartData Summarization, Part 1 (7:24)
-
StartData Summarization, Part 2 (4:20)
-
StartReactive Data Summarization (2:23)
-
StartHealthy Value Box (4:35)
-
StartWealthy Value Box (2:59)
-
StartWise Value Box (3:00)
-
StartCode Checkpoint (File Download)
-
StartPredictive Analysis Goals (4:10)
-
StartSetup (File Download) (3:32)
-
StartPreprocessing the Bikes Table (7:06)
-
StartTraining Data Set: Getting Ready for parsnip + XGBoost (3:12)
-
StartMachine Learning Algorithm: parsnip + XGBoost (6:36)
-
StartCode Checkpoint #1 (File Download)
-
StartModularizing the Preprocessing Code, Part 1: Separate Bike Description (9:06)
-
StartModularizing the Preprocessing Code, Part 2: Separate Model Description (5:03)
-
StartCode Checkpoint #2 (File Download)
-
StartMaking Predictions from User Input (6:02)
-
StartModularizing the Prediction: Generating New Bikes (8:12)
-
StartCode Checkpoint #3 (File Download)
-
StartFormatted Table (5:18)
-
StartModularizing the Table Output: format_table() (1:08)
-
StartBike Prediction Plot: Data Preparation (7:03)
-
StartBike Prediction Plot: ggplot, Part 1 (7:16)
-
StartBike Prediction Plot: ggplot, Part 2 (4:47)
-
StartModularize the Bike Prediction Plot: plot_bike_prediction() (5:05)
-
StartCode Checkpoint #4 (File Download)
-
StartWhat You Build In This Section (0:52)
-
StartSetup: dir_create() & flexdashboard creation (2:47)
-
StartSetting Up The Flexdashboard Layout (3:25)
-
StartLoad Libraries (3:35)
-
StartData: Connect to SQLite and Load Bikes Table Into Memory (3:19)
-
StartScripts: Source Our Modular Prediction Functions (3:00)
-
StartMachine Learning Model: Loading Our XGBoost Algorithm (1:51)
-
StartGenerating Bike Predictions (3:33)
-
StartThe Prediction Table: format_table() (0:40)
-
StartThe Price Prediction Plot: plot_bike_prediction() (2:26)
-
StartAside - The Difference Between Flexdashboard With & Without runtime: shiny (1:37)
-
StartCode Checkpoint (File Download)
-
StartAdding Shiny To Our App - runtime: shiny (1:33)
-
StartAdding A Text Input: textInput() (2:09)
-
StartAdding An Apply Button: actionButton() (2:09)
-
StartAdding Reactivity To The Apply Button: eventReactive() (4:21)
-
StartRendering The Prediction Plot: renderPlotly() (2:31)
-
StartRendering The Prediction Table: renderTable() (1:49)
-
StartRender On Load: Prediction Plot & Table (1:26)
-
StartCode Checkpoint (File Download)
-
StartWhat You Build In This Section (0:54)
-
StartSetup (File Download) (0:43)
-
StartOrganizing Our UI & Adding The shinyWidgets Library (2:04)
-
StartGetting The Unique Categories: distinct() (3:00)
-
StartAdding Bike Family UI: pickerInput() (3:58)
-
StartConnecting Bike Family UI To The Apply Button (2:07)
-
StartConnecting Bike Family UI To The Reset Button (2:00)
-
StartGenerate Bike Type From Bike Family (6:22)
-
StartUpdate Bike Family In Bike Prediction (3:17)
-
StartAdding Frame Material UI: pickerInput() (2:17)
-
StartConnecting Frame Material UI To Apply, Reset, & Generate New Bike Prediction (3:37)
-
StartCode Checkpoint (File Download)
-
StartSetup (File Download) (1:44)
-
StartResource #8: Chrome DevTools - Browser Web Development Tools (10:10)
-
Start[OPTIONAL / ADVANCED] 1 Hour Chrome DevTools Crash Course - Traversy Media
-
StartCSS Setup & Coloring the Navbar (7:07)
-
StartColoring the Sidebar (3:49)
-
StartAdding a Logo (4:53)
-
StartResource #9: Google Fonts (8:03)
-
StartNavbar - Montserrat (5:01)
-
StartHeaders - Montserrat (4:31)
-
StartBody - Roboto (2:25)
-
StartColoring the Buttons (9:15)
-
StartCode Checkpoint (File Download)
-
StartDisplaying Product Images in Your Shiny App (1:20)
-
StartSetup (File Downloads) (4:52)
-
StartConnect the Script & Model Paths (4:09)
-
StartImage Placeholder (1:20)
-
StartExtracting the Model Base (5:58)
-
StartGenerate New Bike: To Speed Up Debugging (4:01)
-
StartDetecting & Retrieving the Image Path (5:20)
-
StartExpose the Image Path to the App (2:36)
-
StartRendering Images: renderImage() (4:58)
-
StartHandling Bike Models with Numbers in their Names (5:38)
-
StartCode Checkpoint (File Download)
-
StartForecast Analysis: Setup & Overview (4:04)
-
StartData Processing (5:16)
-
StartTime Series Aggregation: aggregate_time_series() (7:04)
-
StartTime Series Plot: plot_time_series() (5:16)
-
StartTime Series ML vs ARIMA: Why We Are Using ML For Our App (1:45)
-
Starttimetk, Part 1: A toolkit for time series ML prep (6:21)
-
Starttimetk Part 2: A Toolkit for Time Series ML Prep (3:14)
-
StartMaking Training & Future Data (8:47)
-
StartXGBoost Forecast Model (File Download) (7:51)
-
StartMaking Predictions & Outputting in the Format for Our New Forecast Plot (8:22)
-
StartModularizing the XGBoost Forecast: generate_forecast() (6:02)
-
StartInteractive Forecast Plot (6:45)
-
Startplot_forecast() (2:30)
-
StartCode Checkpoint (File Download)
-
StartVisual Forecast Inspection (6:10)
-
StartPreparing for the Model Change (4:08)
-
StartAdd Logic: Separating the Yearly Data from the Other Time Aggregations (2:32)
-
StartMaking a Linear Regression Model for Yearly Data (5:01)
-
StartUpdating the Plot Forecast Function, Part 1 (5:28)
-
StartUpdating the Plot Forecast Function, Part 2 (5:40)
-
StartSaving Our Functions (1:21)
-
StartCode Checkpoint (File Download)
-
StartOverview (2:02)
-
StartSetup (2:24)
-
StartToggle Switch: switchInput() [with CSS Copy-Paste] (5:46)
-
StartShowing & Hiding the Forecast Horizon: conditionalPanel() (4:07)
-
StartLink the Forecast Toggle Switch to Reset & Update Buttons (2:59)
-
StartIntegrating the Forecast (8:34)
-
StartProducing the Forecast Plot (4:20)
-
StartConnecting the Forecast to the Time Unit Radio Buttons: observeEvent() (3:25)
-
StartConnecting the Forecast to the Forecast Mode Toggle Switch: observeEvent() (3:26)
-
StartValue Boxes, Part 1: Update Colors with Changing Data Filters (6:04)
-
StartValue Boxes, Part 2: Update Colors with Changing Data Filters (6:51)
-
StartCustomer Selection: pickerInput() (6:00)
-
StartConnecting the Customer Selection to the Data Filter (4:50)
-
StartRecap (0:58)
-
StartCode Checkpoint (File Download)
-
StartCreating a CSS Theme for Our Shiny App (1:09)
-
StartSetup (File Download) (1:14)
-
StartConnecting Our CSS & Logo (2:59)
-
StartAdjusting the Sidebar Width (8:34)
-
StartColoring the Forecast Mode Toggle Switch (4:54)
-
StartColoring the Time Series Radio Buttons (10:59)
-
StartColoring the Value Boxes (5:51)
-
StartUpdating the CSS to Make Responsive for Mobile Devices (2:35)
-
StartEnabling Scroll Capability on the UI Sidebar for Mobile Devices (3:16)
-
StartCode Checkpoint (File Download)
-
StartMaking a Dark Theme! (0:45)
-
StartAdding A View Mode Toggle Switch (9:19)
-
StartCreating The Dark Theme (6:05)
-
StartSwitching Themes with includeCSS() & renderUI() (5:39)
-
StartAdjusting the Theme for Mobile Devices (3:14)
-
StartFinal Shiny Sales Dashboard with Forecasting & Dark Theme! (1:10)
-
StartCode Checkpoint (File Download)