Skip to main content
← Back to home

ADM

Test-data and shipment-traceability platform for an Italian lighting manufacturer's production line.

  • Web App
  • DevOps
ADM

Challenge

The Schleich test benches on the line record every luminaire's end-of-line test as a CSV file on a Windows share. Retrieving a unit's report meant browsing folders by hand, and shipment records lived in separate lists with no link to the tests. The manufacturer needed every tested device searchable and tied to its shipment and operator, without changing how the benches themselves work.

Solution

We built ADM as three NestJS services in TypeScript sharing one database. The parser scans the benches' output folders on a configurable schedule, tracks which files it has already processed and imports only what is new, storing each test down to the individual step with measured values, set points and tolerances. A second service tracks devices by serial number, groups them into shipments and records the operator, and an API gateway routes the Angular web app's requests to the right service. Staff filter by date, serial number, program or shipment, open the full step-by-step report of any unit, and download the current view as CSV. Every service is documented with OpenAPI, shipped as a Docker image from GitLab CI, and deployed on a single-node Kubernetes cluster provisioned by Ansible playbooks that also mount the benches' network shares and install a Grafana Loki logging stack.

Result

From first commit to tagged production releases in one month: test capture, per-unit traceability and shipment tracking on one platform. Staff look up any device's full test history by serial number instead of digging through share folders, and the system remains in use on the manufacturer's line.

About this project

Every luminaire that leaves the client's assembly line goes through an end-of-line test bench: insulation resistance, protective-earth continuity, functional power, a series of visual checks. The benches record each unit's results as CSV files on a network share. Accurate, but effectively unsearchable, and disconnected from the shipping records kept elsewhere. An Italian lighting manufacturer asked LM DevStudio to turn that data into something its staff could actually use.

ADM is the platform we built: three NestJS services behind an API gateway, and an Angular web app on top. A parser watches the benches' output folders and loads every new test report into the database, down to the individual test step with measured values and tolerances. A tracking service groups tested devices into shipments and records the operator who handled them. In the web app, production staff find any unit's full test report by serial number, program or date, and export filtered CSVs. The whole system runs on a single-node Kubernetes cluster on the manufacturer's own hardware, provisioned end to end with Ansible.

Tools used

  • Angular
  • NestJS
  • SQLite
  • Kubernetes
  • Ansible