
Combine supply chain, data science, and development in an end-to-end inventory scenario, featuring a daily-updated inventory algorithm and real-time data integration using SHINee.
.
Explore the Shiny framework for building web applications with R, enabling real-time supply chain dashboards and analytics without deep HTML or JavaScript knowledge.
Explore reactive programming in Shiny to build interactive supply chain applications; distinguish front end and back end, move from static to dynamic analysis, and connect user inputs to database-driven outputs.
Open source and affordable hosting empower supply chain professionals to build end-to-end inventory, forecasting, pricing, optimization, and network design applications, leveling the playing field for small and large firms.
Explore the R language, its vast package ecosystem, and how to install and use tools like Jeje plot for visualization and deployer for manipulation, plus shiny apps and pipelines.
This walkthrough introduces the console, output area, environment, plot area, packages, and viewer in the RStudio interface, and explains how to start fresh, write code, and manage packages for analysis.
Learn to install and load R packages with install.packages and library, create a dedicated project folder for scripts and data, and manage import/export for reproducible supply chain analysis.
Explore fundamental data structures in r—vectors, lists, matrices, and data frames—and distinguish data types such as character, numeric, integer, factor, and dates for modeling and visualization.
Import retail data in R with the reader package and read csv files. Inspect structure with str and head, clean names, and summarize numeric versus categorical data.
Build and test an operations function in R that performs addition, multiplication, division, subtraction, and power; use for loops and if-else to flag United Kingdom and domestic versus international purchases.
Apply a function inside a for loop to determine each person's age category from a list, then print the categories for all names in an R and Shiny inventory context.
Learn to build a country-specific function in R, apply it to dataframe rows with a for loop, and create a new column capturing United Kingdom and France conditions.
Subset the car dataset to extract car names and prices, then create a function to assign a price category (budget, convenience, expensive) and add it as a new column.
Explore solving the assignment with the cars dataset in R, counting observations and features, inspecting cylinders, summarizing speed and price, and renaming the name column to car name.
Explore core R data structures—vectors, lists, matrices, and data frames—and their objects, with data import, structure, and summary statistics for continuous variables, plus subsetting, naming, filtering, and creating new columns.
Explore data with dplyr by grouping by country, summarizing sales quantity, and ranking countries using arrange; inspect and clean negatives and price outliers with filter to uncover valid insights.
Learn to compute the average revenue per invoice by grouping data by invoice numbers. Identify unique invoices and recognize that a single invoice can include multiple items in retail data.
Master joining data in supply chain analytics by using left and full joins to combine sales, stocks, and other data frames, aligning on keys like article and date.
Change the datetime to date to enable daily sales aggregation by creating a new date column using as_date on invoice_date, reshaping data by pivoting for per-day inventory insights.
Pivot wider teaches how to transform long inventory data into wide format using pivot_wider, separating by article and time for forecasting and analysis in R.
Learn to pivot wider to create a wide dataset and pivot longer to restore it to long form, keeping description intact while reshaping inventory data for forecasting.
Learn to split a single column into date and time using separate and paste in R, enabling flexible data cleaning for inventory tasks.
Solve a data assignment by linking airlines, planes, weather, airports, and flights in R and Shiny, then group by destination, count, and identify the top New York destination.
Learn to build a first Shiny application by creating a simple hello world ui on a fluid page, then define the ui and server and run the app.
Explore building a reactive Shiny app that connects user input to dataset selection, rendering a summary and an interactive data table using reactive expressions and outputs.
Learn to set up libraries for inventory filtering in a Shiny app, using lazy loading and extracting unique date, country, and stock filters with min/max dates.
Learn to structure a Shiny app with a sidebar layout, input controls, date range selectors, and a main panel, wiring reactive outputs and plots for inventory insights via the server.
Explore country and sku reactivity in a Shiny app by filtering the dataset with country and item inputs, including United Kingdom and Italy, and building reactive displays and plots.
Prepare inventory data by separating key attributes (item, description, color, size, section, subfamily, supplier, brand) and use underscores, then create a MySQL database and connect via R Shiny.
Explore how inventory data flows from a single warehouse to a store, accounts for lead time and stock availability, and handles out-of-stock, returns, and seasonality in demand.
Connect to the database with DBI to support the replenishment algorithm by fetching the latest 90 days of stock, purchases, and orders with daily automated updates and tidier data.
Fetches three months of sales, purchase orders, and stock data using SQL queries, filters by date ranges based on the maximum date, and demonstrates handling date conversions and range calculations.
Create a unique key to link four datasets—stocks, sales, orders, and new orders—by standardizing labels (three months, two years, 10 days) and using common fields like description, size, and subfamily.
Define seasonality by calculating the average monthly sales by category across two years, then relate it to the average category to reveal monthly seasonal patterns.
Link each day's beginning to the prior ending to calculate inventory, account for received quantities and in-transit stock, and use the inventory pipeline to guide end-of-day orders per policy.
Explore calculating total requested and current stock, cost, revenue, and profit using product attributes in R & Shiny, including in-transit stock, lead time, and dataset joins.
Apply ABC classifications and margin and volume drivers to build an inventory product mix and identify slow-moving items while setting safety stock levels.
Learn inventory calculations for average daily demand, days of sales, lead times from suppliers to warehouse to stores, and inventory turns within a 90-day rolling horizon using filter-based methods.
Assess the last stock on hand date to gauge replenishment timing, item popularity, and whether stock should be replenished, using a joined dataset and inventory calculations.
Run the daily inventory algorithm, verify database updates without errors, generate a stocks report, and safely disconnect to optimize memory for a future shiny app.
Learn how an inventory app should present filtered data, alert stocks with red and orange alerts, generate order quantities, and track stock value for informed decision making.
Build a Shiny mango stock user interface with a left sidebar for subsetting and a main panel featuring plots, tables, and download options to monitor stock by store.
Demonstrate how to calculate inventory turns and margins using three-month data and current stock value, with groupings by subfamily and section and visualizations in plots and tables.
Build a three-month, unit-focused bar plot in a Shiny inventory app, showing current stock and ordered quantity alongside sales units by brand or subfamily.
Rank inventory by revenue or current stock in an R and Shiny workflow, build a reordering function, and visualize the top 15 items with three months' sales or stock values.
Explore building a Shiny inventory dashboard with a pie chart showing current stock value and revenue, using input choices, and adding a daily download data feature.
Finalize tab1 in an R and Shiny inventory app by fixing range functions and naming, enabling data download, search, and subfamily filters for revenue insights.
Learn to use r & shiny inventory alarms to prioritize replenishment, using red and orange alerts to flag critical items by margin and volume drivers under cash flow constraints.
Configure the alarms page in inventory analytics using R and Shiny, create red and orange alerts, and visualize alerts by brand, subfamily, and section with ABC classification insights.
Deploy the inventory application to Azure by creating separate resources for the app and database, connecting remote servers, and exploring cloud versus in-house options using Linux Ubuntu.
Schedule the inventory analytics app using cron or cloud schedulers, deploying a 24/7 server that runs min-max reorder points, seasonalities, and three months sales revenue.
Debugging in an inventory workflow using R and Shiny, identify a 'minimum date requested' error, adjust the minimum, and remove and re-run the crown job to resolve timing issues.
Diagnose and fix data submission in a Shiny inventory app by aligning client and server settings, correcting a misspelled minimum date, and rescheduling the data write process.
Verify the output by checking the logs and today’s dataset, confirming the maximum value condition is met. Update resources and prepare deployment to the cloud.
Connect to the deployed virtual machine via SSH using the public IP and username, then upgrade and install packages, configure the repository, and set up shiny server on Linux.
Install and configure RStudio Server on a virtual machine, test the service via an open port, and troubleshoot package dependencies caused by Unix libraries such as Fortran.
Connect to the studio server, open port 3838 for Shiny server, and deploy applications to the Chinese server from your virtual machine.
Set up a database on a server, upload seeds, stocks, and orders, test connections, prepare data for replenishment algorithms, and connect inventories to the upcoming R and Shiny application.
Connects and verifies cross-server database access, deploys an inventory app on the cloud, configures remote virtual machines, and confirms data flow between the Shiny server and database.
INVENTORY APP · R SHINY · RSTUDIO SERVER · MYSQL · AZURE · CLOUD DEPLOYMENT · SUPPLY CHAIN DEVOPS · CRON · INVENTORIZE · REPLENISHMENT ALGORITHM · SHINY SERVER
★ The Only Course on Udemy That Builds a Complete Inventory App in R — From Algorithm to Cloud Deployment
Most R courses stop at statistical analysis. Most inventory courses stop at spreadsheet models. Most Shiny courses build toy dashboards. This course combines all three into one end-to-end engineering project: a production-grade inventory replenishment algorithm in R, wrapped in a multi-tab Shiny web application with alarms, rankings, and category analytics, connected to a MySQL database, scheduled with Cron, and deployed to Azure via RStudio Server and Shiny Server. There is no other course on any online learning platform that does this in R. It is genuinely one of a kind.
★ Shiny Goes Far Beyond Dashboards Here — Multi-Tab Application with Alarms, Categories, and Live Database
Most Shiny courses teach you to build single-page reactive apps. This course builds a multi-tab production inventory application: Tab 1 covers inventory KPIs, bar plots, pivots, margin and turns analysis, top sales/revenue, rankings, and pie charts with file download. Tab 2 is a full alarm system with orange and red logic, alarm datatables, and a categories page. A dedicated size and colour tab adds a third analytical dimension. Every tab connects to a live MySQL database and updates in real time. This is Shiny at the level of a commercial SaaS product.
★ Built by the Co-Founder of Keip — a SaaS Platform for Retail and Supply Chain Management
Haytham is the co-founder of Keip — a software-as-a-service product built specifically for retail and supply chain management and analytics. The Shiny application architecture, MySQL database design, RStudio Server configuration, and Azure deployment approach in this course reflect real decisions made building and maintaining a live commercial software product. You are not learning from a developer who built a demo. You are learning from a SaaS founder who builds and ships supply chain software.
★ Inventorize in Its Native Language — R, Built by Its Creator, for ABC Classification at Scale
Inventorize was originally developed in R before it was ported to Python — making this course the natural home of the library. Section 5 uses Inventorize for ABC dynamic classification across the full product assortment, integrated directly into the inventory algorithm pipeline. The library is used by over 90,000 supply chain professionals worldwide. In this course you use it in R, taught by the person who built it, within a live production inventory system.
★ Full-Stack Supply Chain in R: Algorithm → MySQL → Shiny → RStudio Server → Cron → Azure
The R ecosystem for supply chain application development is powerful but rarely taught end to end. This course covers every layer: R and dplyr for data manipulation and algorithm development, Inventorize for ABC classification, MySQL for the operational database, Shiny for the front-end application, RStudio Server for the cloud R environment, Shiny Server for serving the app to the internet, Cron for automated scheduling, and Azure for virtual machine hosting and deployment. All from scratch. No previous knowledge required.
COURSE DESCRIPTION
Most R courses stop at statistical analysis. Most Shiny courses stop at single-page dashboards. This course goes all the way. Across 10 sections and 18 hours, you will build a complete cloud-deployed inventory management application in R — from a Python-free algorithm that runs on real supply chain data, through a multi-tab Shiny application with live database callbacks, to full Azure deployment using RStudio Server and Shiny Server so the app is accessible from any browser, anywhere, running automatically without human intervention.
The course is structured as a single consulting project. Mango Incorporation has hired you to optimise their stock replenishment and automate the process. You will investigate their data, build an inventory algorithm in R (seasonality, ABC classification with Inventorize, stock status, reorder points, service level, min-max policy), send results to MySQL, build a multi-tab Shiny application with KPI charts, alarm systems, category analytics, and ranking dashboards, schedule the pipeline with Cron, and deploy everything to Microsoft Azure via RStudio Server and Shiny Server.
This is the R twin of “Build a Supply Chain Inventory App with Python & Azure” — same project, same database structure, same Azure deployment target, R and Shiny all the way through. It is taught by the co-founder of Keip and the creator of the Inventorize R package. No previous knowledge is required. The course genuinely starts from zero.
WHAT MAKES THIS COURSE DIFFERENT
[ END2END ]
Algorithm to cloud app — nothing skipped
Inventory algorithm → MySQL → Shiny multi-tab app → RStudio Server → Shiny Server → Cron → Azure. Every layer built from scratch. The full R stack, in one project.
[ SHINY ]
Shiny at SaaS depth — not a tutorial dashboard
Multi-tab app: KPI bar plots, inventory turns, alarms with orange/red logic, categories page, size and colour tab, pie charts, file download, live database callbacks. Commercial application depth.
[ R ]
R preferred? This is the right choice
If your team, your client, or your organisation runs on R, this course delivers the same complete inventory application as the Python version — in R and Shiny, natively.
FULL TECHNOLOGY STACK COVERED
R / RStudio → dplyr → Inventorize → MySQL → Shiny → RStudio Server → Shiny Server → Cron → Azure
WHAT YOU WILL LEARN
✓ Learn R from scratch: installation, RStudio, data structures, dplyr manipulation, joins, pivot tables, and for loops — applied to supply chain data throughout
✓ Build reactive Shiny applications: UI design, input/output binding, reactive expressions, callbacks, and dynamic data tables
✓ Design a complete inventory replenishment algorithm in R: seasonality definition, beginning/ending/receiving inventory, stock status, total requested and current stock, ABC with Inventorize
✓ Implement demand lead-time calculation, service level targets, min-max reordering policy, and reordering quantity across all SKUs simultaneously
✓ Connect R to a MySQL database: initialise the schema, filter and send stock and sales data, fetch real-time data, create unique keys, and parse dates for time series alignment
✓ Build a full multi-tab Shiny inventory application: bar plots, pivot tables, inventory turns and margin KPIs, top sales/revenue, ranking tables, pie charts, and file download functionality
✓ Build a complete alarm system in Shiny: define orange and red alarm logic, build alarm datatables, a full alarms page, a categories page, and a size and colour analytics tab
✓ Schedule the inventory algorithm with Cron for fully automated, unattended operation
✓ Deploy the complete application stack to Microsoft Azure: set up a virtual machine, install RStudio Server, configure Shiny Server, set up remote MySQL, and verify the full system is running
✓ Configure multi-server network connections so the Shiny application, the R algorithm, and the MySQL database communicate correctly across Azure virtual machines
COURSE CONTENT — 10 SECTIONS · 147 LECTURES · 18 HOURS · 33 DOWNLOADABLE RESOURCES
PHASE 1 — FOUNDATIONS
SECTION 1: Introduction: why R, why Shiny, why cloud
Set the context for the entire project. Understand what makes this course different from other supply chain and Shiny courses. Learn why R is the right language for this application, what Shiny enables that static reports cannot, the difference between application dynamics, and a full review of the supply chain applications landscape. Complete curriculum overview.
Concepts
SECTION 2: R crash course for supply chain developers
No R experience? No problem. Install R and RStudio, set up your project, and install packages. Learn R from scratch with a supply chain data mindset: data structures and types, arithmetic and vectors, lists, importing and exploring data, selecting from dataframes, if-else logic, functions with conditions, and for loops applied to dataframes. Two-part graded assignment.
R RStudio
SECTION 3: Data manipulation with dplyr
Build the dplyr toolkit that powers the inventory algorithm. Investigate data with dplyr, calculate unique invoices, average invoice values per country, average items per invoice, perform joins, handle datetime, apply pivot wider/longer, and use separate and paste. Includes the New York Airlines graded assignment across seven questions — the data engineering foundation the entire application depends on.
R dplyr
PHASE 2 — SHINY APPLICATION FUNDAMENTALS
SECTION 4: Building reactive Shiny applications
Your first supply chain web application in R. Install Shiny packages, build your first app, design a UI, connect inputs and outputs, and create reactive expressions. Build a fully reactive Fibonacci sequence assignment to master Shiny’s declarative programming model. Then move to a real supply chain Shiny app: get unique identifiers, design the full user interface, build the app structure, add date/country/SKU reactivity, plot line charts, and build interactive datatables.
R Shiny
PHASE 3 — THE INVENTORY ALGORITHM
SECTION 5: Inventory replenishment algorithm for Mango Incorporation
The analytical and engineering core of the course. Design the full algorithm workflow. Set up MySQL Server and Workbench. Orient to Mango Inc.’s data. Prepare and filter stocks, send stocks and sales to the database, define algorithm assumptions, process purchase orders. Connect to the database, fetch real-time data, create a unique key, and parse dates. Define seasonality in the data and the algorithm. Calculate beginning, ending, and receiving inventory. Calculate stock status, total requested and current stock. Apply ABC classification using Inventorize. Calculate inventory metrics, demand lead-time, reordering quantity, and service level targets. Adjust for seasonality, finalise the algorithm, calculate last stock on hand date, and send the complete output back to the database.
R MySQL Inventorize
SECTION 6: Scheduling and automation with Cron
An algorithm that runs manually is a tool. An algorithm that runs automatically every day is a system. Configure Cron to schedule the inventory algorithm in R, debug the scheduling job, and verify that the algorithm triggers, executes, and writes to the database without any human intervention.
R Cron
PHASE 4 — THE SHINY INVENTORY APPLICATION
SECTION 7: Multi-tab real-time inventory Shiny application
Build the commercial-grade Shiny application that presents the algorithm output as a live, multi-tab inventory dashboard. Design the key input layer and the Mango Stock user interface. Manage user inputs reactively. Build Tab 1 completely: bar plots, pivot tables, inventory turns and margin KPIs, top sales and revenue rankings, pie charts with file download functionality, and the finalised tab layout. Build Tab 2: define alarm logic (orange and red conditions), build alarm datatables, construct a full alarms page, build the categories analysis page with overview, and add a size and colour analytics tab. Full application overview walkthrough.
R Shiny MySQL
PHASE 5 — AZURE CLOUD DEPLOYMENT
SECTION 8: Azure deployment Part 1: RStudio Server and Shiny Server
Deploy the R environment to the cloud. Set up a free Azure account, deploy a virtual machine, configure the server, install RStudio Server, install essential R libraries, set up Shiny Server to serve the application, configure the remote database connection, verify the full system is operational, install R packages with sudo permissions, and deploy the application to the public Shiny Server.
Azure R Shiny MySQL
SECTION 9: Azure deployment Part 2: second VM and database configuration
Set up the second Azure virtual machine for database isolation. Connect to the new VM remotely, install all required libraries, configure MySQL in the Azure environment, create the production database, verify the full end-to-end system is working across both virtual machines, and receive the final confirmation that the inventory application is live, accessible from the internet, and running automatically.
Azure MySQL R
SECTION 10: Final message and next steps
A brief closing section confirming what you have built — a complete, cloud-deployed, automated inventory management application in R and Shiny — and pointing toward the next courses and projects in the supply chain analytics series.
Discussion
THIS COURSE IS NOT FOR YOU IF...
✗ You prefer Python — the Python version of this exact project (Build a Supply Chain Inventory App with Python & Azure) is available separately; same algorithm, same database, same Azure deployment, Python and Dash throughout
✗ You are looking for a conceptual inventory management course — this course builds a working cloud application; if you want inventory theory and Excel or Python models, the Stock Control & Inventory Management: Excel to Python course covers that
✗ You want a general Shiny tutorial course — every Shiny component in this course is applied specifically to the supply chain inventory problem; standalone Shiny training is a separate category
✗ You need a statistical analysis or forecasting course — this course focuses on application engineering; the R forecasting catalogue (A Deep Dive into Forecasting — Excel & R and Business Statistics with R) covers statistical analysis
WHAT STUDENTS AND CLIENTS SAY
“Excellent course. The instructor is very engaging and the way he walks through building a real supply chain application in R and Shiny — from the algorithm all the way to Azure deployment — is unlike anything else available online.”
Bill — Verified Udemy student
“In Q4 2018, I attended a Supply Chain Forecasting & Demand Planning Masterclass conducted by Haytham and the possibilities seemed endless. We retained Haytham as a consultant to implement inventory guidelines for our business — a clear indication of his capabilities as a specialist in R, data analytics, demand planning, and inventory management.”
Shailesh Mendonca — Commercial Lead — Adventure AHQ, Sharaf Group
“Haytham mentored me in my role of Head of Supply Chain Efficiency. He is extremely knowledgeable about supply chain concepts, latest trends, and benchmarks. His analytics-driven approach was very helpful to recommend and implement significant changes to our supply chain at Aster Group.”
Saify Naqvi — Head of Supply Chain Efficiency, Aster Group
WHO THIS COURSE IS FOR
Supply chain and inventory professionals who use R
You manage stock, replenishment, and purchasing decisions in an R-based environment and want to automate your inventory processes with a real algorithm and a live Shiny web application.
R developers and data scientists entering supply chain
You know R and want to apply it to a complete, real supply chain engineering project — building an inventory management system, connecting to MySQL, and deploying a Shiny app to Azure.
Supply chain analysts and consultants
You build R-based analyses and models for clients and want to take the next step: delivering live, cloud-hosted Shiny applications rather than static RMarkdown reports that require manual updating.
Shiny developers who want a real-world project
You have built basic Shiny dashboards and want a complete, multi-tab, database-connected, cloud-deployed application project to stretch your skills and build your portfolio.
Python course completers who prefer R
You have seen the Python version of this course (Build a Supply Chain Inventory App with Python & Azure) and prefer to work in R. This course delivers the same complete system — same project, same deployment, R all the way through.
Students and career changers into supply chain tech
You want a portfolio project that demonstrates full-stack supply chain engineering in R: algorithm design, database management, Shiny application development, and Azure cloud deployment.
REQUIREMENTS
● No previous knowledge required — this is the only requirement listed on the course page, and intentionally so. No R, no Shiny, no database, no cloud experience assumed.
● Section 2 is a complete R crash course covering all the fundamentals before any application code is written — installation through for loops.
● Section 4 teaches Shiny from scratch — from the first reactive expression through to a complete multi-tab inventory application.
● A computer with R and RStudio (both free) — setup guided step by step in Section 2. MySQL Community Edition, Shiny, and all R packages are free and open-source.
● A Microsoft Azure free account — the Azure free tier covers everything needed for the deployment sections. Account setup is guided inside the course.
WHAT IS INCLUDED
● 10 sections, 147 lectures, and 18 hours of on-demand content covering the complete pipeline: R → inventory algorithm → MySQL → Shiny multi-tab app → Cron scheduling → Azure deployment
● 33 downloadable resources: R project files, Shiny application code, database setup scripts, and Cron job templates
● A complete, working multi-tab Shiny inventory application by the end of the course — not exercises, but a deployable system you own, with alarm logic, category analytics, and a size and colour tab
● Mango Incorporation project dataset: real-format supply chain data used throughout the algorithm development and Shiny application sections
● Full Azure cloud deployment across two virtual machines — RStudio Server, Shiny Server, and remote MySQL configuration covered in full
● Inventorize R package for ABC dynamic classification — taught in Section 5 by its creator, in its native R environment
● Lifetime access to all content and any future updates to the curriculum
● 30-day money-back guarantee — no questions asked
● Certificate of completion upon finishing the course
YOUR INSTRUCTOR
Haytham Omar, Ph.D.
Supply Chain & Business Intelligence Consultant · Developer · Trainer — UAE & France · Co-Founder, Keip (SaaS for supply chain & retail management)
Haytham holds a Ph.D. in Supply Chain and Forecasting from the University of Bordeaux and a Master of Science in Global Supply Chain Management from Bordeaux École de Management. He is the co-founder of Keip — a SaaS platform for retail and supply chain management — which means the Shiny application architecture, RStudio Server configuration, and cloud deployment approach in this course come from building and maintaining a live commercial software product.
He is the creator of the Inventorize package for R and Python — originally developed in R and now used by over 90,000 supply chain and retail professionals worldwide. He has deployed inventory replenishment algorithms for retail and supply chain companies across the UAE and France. He has trained over 70,000 professionals across 70+ workshops in the UAE. Additional consulting clients include Sephora France, Aster Group, DNO, PWC Training Academy Dubai, Qarar, and the Higher College of Technology.
This course is the R twin of “Build a Supply Chain Inventory App with Python & Azure”. Both courses build the same end-to-end inventory management system for Mango Incorporation using the same algorithm logic, the same database structure, and the same Azure deployment target — but this one does it entirely in R and Shiny.
Your R skills deserve a real project. This is it.
10 sections · 18 hours · R → Algorithm → MySQL → Shiny → RStudio Server → Cron → Azure · SaaS founder instructor · Real project