Developer Information
This page provides an overview of the technology stack, architecture, and key development decisions behind ORNL's industrial applications. It is intended for developers and technical users who want additional transparency into how these tools are built and operate.
GitHub Repositories
The source code for MEASUR, VERIFI, and JUSTIFI is publicly available on GitHub. All repositories are open source and distributed under the MIT License.
MEASURhttps://github.com/ORNL-AMO/AMO-Tools-Desktop MEASUR Tools Suitehttps://github.com/ORNL-AMO/MEASUR-Tools-Suite VERIFIhttps://github.com/ORNL-AMO/VERIFI JUSTIFIhttps://github.com/ORNL-AMO/JUSTIFI
MEASUR-Tools-Suite (WebAssembly)
The MEASUR Tools Suite is a library of industrial system calculations used to model manufacturing equipment and processes. The MEASUR application serves as the primary interface built on top of this library.
The library is written in C++ and compiled to WebAssembly, enabling high-performance calculations to run directly in the browser. This approach allows system modeling to operate at near-native speeds while remaining portable across platforms.
Technology Stack
All three of our flagship projects are built using the same technology stack to provide a similar user experience and some interoperability between the applications.
IndexedDb
IndexedDb is a database that exists within all modern web browsers and is leveraged by the applications to store data locally on the user's machine. The decision to use IndexedDb was made to ensure that at no point is the data entered into the applications sent to ORNL or DOE. Additionally, IndexedDb provides the ability for the applications to work offline (For example, on a factory floor without internet).
Web Application with Electron
All three applications are built first as web applications. The Electron framework is used to package the web applications as desktop applications. This allows the applications to be installed on a user's machine and run as a native application. The Electron framework provides a way to create cross-platform applications that can run on Windows, Mac and Linux. The decision to use Electron was made to provide a native application experience for the users. By installing the applications users are able to access and run the applications without a web connection.
For the most part, the web and installed versions of the applications are the same. The only difference is that the installed versions of the applications have access to the local file system. In some cases (VERIFI) this allows users to automatically backup their data to a defined location.
MEASUR Progressive Web Application (PWA)
The MEASUR application is also built as a Progressive Web Application (PWA). This allows the application to be faux-"installed" on a user's mobile device and behave as a native application. The PWA provides a dedicated icon and browser link that will only run the MEASUR application, resulting in a similar experience to a native mobile application.
Some modules within MEASUR, like the Treasure Hunt, are designed to be mobile friendly. Other modules will have a better user experience on a computer because of extensive data entry requirements.
Internationalization
While the applications are currently only available in English, the web versions of the applications are often used with the browsers built-in translation features. All three applications do support a wide range of Imperial and Metric units with the ability to roll-up to a specified unit. This allows users to collaborate while entering data in different units. International currencies are a work in progress, currently implemented within the JUSTIFI application and will be added to MEASUR and VERIFI in the future.