Gas Cylinder Monitor
A web app for tracking the calibration gas cylinders used by process analyzers — status, expiration dates and stock for every group, with automatic alerts instead of manual checks.
The problem
Process analyzers (monitoring CO, NOx, SO2 and other parameters) need regular calibration with reference and zero gas cylinders, often shared across several lines. Tracking them by hand — which cylinder is full, which is in use, which are about to expire, how much stock is left for each line — is easy to lose track of, and a mistake has real consequences: an analyzer down for lack of stock or, worse, a calibration done with expired gas without anyone noticing.
The solution
Gas Cylinder Monitor centralizes cylinder tracking by analyzer group: the status of each cylinder (Full / In Use / Running Low / Empty / Expired / Ordered / Shipped), expiration date, pressure and any subgroup it belongs to. A three-level alert system (green / yellow / red) flags insufficient stock or expiring/expired cylinders for each group, so problems surface right away instead of when you need the gas.
Every group's status at a glance
Inventory, subgroups and shared zero gas
Creating groups and subgroups
Design highlights
More than a list of cylinders: every interface decision makes a problem visible before it turns into downtime.
Automatic alerts, always with a clear reason
Configurable thresholds (months of notice before expiration, minimum stock) color each group green/yellow/red, but the reason for the alert is always spelled out — never left to color alone — so it stays readable for screen reader users too.
Every status change is tracked
A global chronological log records every status change for every cylinder, plus a separate history of manual checks — useful for understanding what happened and when, without having to piece it together from memory.
Shared zero gas
A cylinder can be marked as a shared system resource (Zero/Nitrogen) and automatically appear on every group that uses it, with no need to duplicate it or track it separately.
Subgroups
Analyzer groups with more complex setups (e.g. multiple calibration racks) can have their own subgroups, with dedicated inventory and filters.
Mobile-first
Originally designed only for smartphone use on the plant floor, then adapted for tablet and desktop while keeping the mobile experience intact.
Tech stack
Frontend
Backend
Deployment
My role
Gas Cylinder Monitor started as a simple tool for a real, personal need: always knowing the actual status of the calibration cylinders, with automatic alerts instead of manual checks.
Over time I turned it into a real product: locked it down (authentication, protected routes, Firestore rules), fixed data integrity bugs that surfaced in real-world use (orphaned cylinders after a group was deleted, out-of-sync history), and finally redesigned the entire interface — a high-contrast industrial visual identity ("Cylinder Steel"), shared components, accessibility and desktop/tablet support — while keeping the app working and verified at every step.
Note: the screenshots on this page show the app filled with fictional demo data (sample analyzer groups and cylinders), created specifically for this presentation — no real data is involved.
Facing a similar problem?
Every project above started from a real need. If one of them sounds familiar, a 20-minute call is enough to see if and how I can help you too.