Compressed air management system

Overview

The CALMS system is a cloud-based web platform that connects various stakeholders in the compressed air industry: Factories as end-users, Service Providers as maintenance and equipment suppliers, and Compressed Air Experts as auditors. Designed as a comprehensive IoT solution, CALMS enables data-driven decision-making for compressed air systems.

Role and Responsibilities

As a Software Engineer, my team and I were responsible for maintaining and enhancing the CALMS cloud server. We worked with a diverse tech stack that included backend services in Java, frontend interfaces in JavaScript, translation services in Python, and sensor software written in C#.

Using IoT techniques, we developed a system that updates visual data every five minutes, enabling users—who are compressed air experts—to interpret the data to optimize and monitor compressor performance. Our platform helps users make critical decisions, like upgrading compressors, replacing components, or preventing potential issues before they escalate.

System Architecture

On a technical level, CALMS integrates sensors with a PLC controller in each factory, where Windows Embedded Compact runs our C# software. We designed the software to operate in two modes:

  1. CSV Mode: Generates .csv files from current sensor data.
  2. Binary Mode: Produces .bin files with the same data.

Data collected (e.g., electricity consumption, pressure, power) is sent to our cloud system, where it is parsed and stored with timestamps in Apache Cassandra, a non-relational database optimized for time-series data.

The cloud system itself is built as a traditional monolithic MVC application on the Java Play Framework. The service API actively listens for requests from factory-installed PLC devices. With hundreds of connected sensors, our server architecture ensures responsiveness and supports parallel processing. PostgreSQL is used to manage structured data, while Apache Cassandra is used for storing time-series data.

Frontend and User Interface

Our frontend, developed with the AngularJS framework, enables a single-page application (SPA) experience for interactive data visualization using JavaScript libraries. For sensitive user tasks—such as profile management, alarm settings, and data entry—we render HTML directly from the backend for security and efficiency. This hybrid approach allows us to balance user interactivity with data integrity and security.

Experience and Reflections

Working on CALMS was both challenging and rewarding. Collaborating with my colleagues, we navigated technical obstacles, debugged critical issues (sometimes late into the night or on weekends), and celebrated successful implementations. This experience has given me confidence and resilience, preparing me for new challenges ahead.


Tech Stack

Programming Languages: Java, JavaScript, C#, Python
Frameworks: Play Framework, AngularJS, Django
Databases: PostgreSQL, Apache Cassandra