This is the code for this video on Youtube by Siraj Raval about Supply Chains.
Logistics Wizard is a reimagined supply chain optimization system for the 21st century.
A number of companies use on-premises applications to run their supply chain business processes. Enterprise Resource Planning systems are often one of them and play a critical role in the daily operations.
Logistics Wizard aims to simulate an environment running an ERP system and augments this ERP system with applications to improve the visibility and agility of supply chain managers. In this case, the ERP system is a simulator implementing a very small subset of the functionalities of a real ERP system. The goal is to showcase several common SaaS implementation patterns. Logistics Wizard exhibits hybrid cloud, micro-services, and big data analytics concepts that can be reused when building enterprise-level applications on Bluemix.
One scenario, illustrating how a supply chain can be made more agile, involves dealing with a bad weather condition. Considering a global retail company with distribution centers, retail stores and ongoing shipments, how can this company adapt its supply chain to react to changing weather conditions that could impact its shipments or become opportunities to increase revenues.
Try the Logistics Wizard sample
Use this walkthrough to view the application in action.
Deploy Logistics Wizard in Bluemix
You can deploy your own environment in the following ways:
- Use the Logistics Wizard Toolchain to deploy the application as Cloud Foundry microservices. (Recommended)
- Follow these instructions to deploy the ERP & Controller manually as Cloud Foundry Docker Apps.
- Learn more about deploying the ERP & Controller microservices using Kubernetes & Istio in this blog.
The following projects are leveraged in the overall Logistics Wizard solution:
logistics-wizard-erp - defines the API used by the Logistics Wizard to access data from an ERP system. It also provides a default implementation to be used as a simulator. The simulator is a Node.js application connected to a PostgreSQL database. Through its API, it manages users (supply chain managers and retail store managers), distribution centers, retail stores and shipments.
logistics-wizard-webui - provides a dashboard to view ongoing shipments and alerts. There is no log-in or user credentials per se to use the deployed applications. Instead a unique demo ID is assigned to any new user trying the application. Behind each demo ID, Logistics Wizard creates an isolated environment with a default set of business users, distribution centers, retail stores, shipments. Refer to the walkthrough to get a tour of the capabilities.
logistics-wizard-recommendation - makes shipment recommendations based on weather conditions. It is a set of Bluemix OpenWhisk to retrieve current weather conditions and given a weather event to generate new shipment recommendations. These recommendations could then be turned into real orders.
logistics-wizard-controller - acts as the main controller for interaction between the services. It receives requests from the user interface and routes them to the ERP or the weather recommendation module.
Visit the wiki for a detailed breakdown of the Logistics Wizard demo architecture and deployment strategy.
Related Blog Posts, Videos, etc
The GitHub milestones for this project and its children are managed by editing the repository config file. The syntax is described in this project. Modify the file and commit. Travis will take care of creating/updating the milestones.
Please check out our Contributing Guidelines for detailed information on how you can lend a hand to the Logistics Wizard demo implementation effort.
See License.txt for license information.
Credit for the code goes to IBM. I've merely created a wrapper to get people started.