Factories run on processes that cross departments: a single customer order touches sales, inventory, finance, and logistics before it reaches the assembly line. This project simulated that reality at full scale - a business process management system for an electronics manufacturing and assembly company, built as ten integrated subsystems by a team of 50 developers.
At that size, coordination is the engineering problem. I led the team across all 10 subsystems, focusing on backend development with Java Spring Boot deployed on Azure Web Services behind NGINX, and directly led the inventory subsystem. Keeping 50 people shipping compatible code meant more than writing my own: I ran teaching cohorts over Discord to bring colleagues up to speed, and put CI/CD testing in place so quality was enforced by pipeline rather than by trust.
The hard part is the seams
Any one subsystem on its own is a routine CRUD application. The difficulty - and the point of the project - is the moments where one subsystem cannot act without another's say-so. The scenarios we demonstrated were chosen to prove those seams worked:
- Check quantity and alert processing: Stock quantities are monitored continuously, and alerts fire for every item that falls below its threshold.
- Create Shipments: Shipments can only be created once the finance system has granted approval - a cross-subsystem authorization, not a checkbox.
- Generate Reports: The inventory manager can generate comprehensive reports aggregating sales trends and inventory movement.
- Repair Items: Damaged inventory is dispatched for repair through its own tracked flow.
The ten subsystems
- Supplies, Stocks, Inventory Management System
- General Management System
- Customer Order Management System
- Finance, Payroll, and Risk Assessment System
- Human Resource Management System
- Logistics, Vehicles, Machinery, Services and Maintenance System
- Manufacturing and Assembly Line Planning and Management System
- Quality Assurance and Quality Control System
- Sales and Marketing System
- Training, Prototyping, Product/Process Development and Simulation System
Inside the inventory subsystem
The subsystem I led sits at the center of the flow - most other subsystems either feed it or draw from it:
- Inventory API: Manages inventory data, including CRUD operations.
- Stock Levels API: Monitors and updates stock levels in real-time.
- Order Processing API: Integrates with the order management system to update inventory based on customer orders.
All APIs used
Component Diagram
Components used
- Frontend: JavaScript, React, Vite, Axios
- Backend: Java, Spring Boot, MongoDB, Azure, Nginx, Postman
For more details, please visit the Company A Frontend GitHub Repository and the Company A Backend GitHub Repository.
