For a cloud computing course, I joined a team of five to build a small inventory management system for a fictional business, combining Node-RED with AWS. My part of it was the actual data pipeline: a Node-RED workflow that takes product entries from a form, sends them to AWS Lambda for a stock check, then writes the result to a database and fires off an alert if something's running low.
The dashboard lets someone enter a product's SKU, name, quantity, and a stock threshold. Submitting the form pushes the entry through a Lambda function that compares the quantity against the threshold and returns a status: OK, Low Stock, or No Stock. From there the data is written to Amazon RDS (MySQL), and the same dashboard shows a live table of every product plus a running count of how many are healthy, low, or out of stock.

Behind that interface is a fairly small Node-RED flow: the form submission gets stringified and sent to Lambda, the response comes back and splits two ways, one branch builds the record and writes it to RDS, the other checks whether the status is Low Stock and, if so, publishes to an SNS topic. Keeping the logic in small, named nodes like this made the flow easy for the rest of the team to follow and modify, which mattered more than usual since five of us were working in it.

When SNS fires, it sends an email straight to whoever's meant to be watching stock levels, no need to check the dashboard, just an inbox notification naming exactly which product is low, its SKU, and its quantity against threshold.

Everything here runs on the AWS Free Tier, RDS, Lambda, SNS, deliberately, since the point was to show this kind of automation doesn't need a big infrastructure budget to be useful for a small business. It doesn't try to be a full ERP system either: no forecasting, no financial reporting, just the one thing that actually causes stockouts in practice, nobody noticing a shelf running low until it's already empty.