About VERIFI
August 4, 2026 ยท View on GitHub
VERIFI is a tool that is a member of Oak Ridge National Laboratory's Industrial Resources suite of applications. It can be used to to track, visualize, and analyze facility utility data in industrial settings. Development plans for the tool are to incorporate, modernize and expand upon several existing DOE tools (EnPI, EnPI Lite, Energy Footprint Tool, Plant Energy Profiler), most of which currently are excel-based or excel-add ons.
VERIFI, like it's sibling applications MEASUR and JUSTIFI, is developed as a web application but is also packaged and distributed as an installable desktop application.
The latest web version of the application can be found at https://verifi.ornl.gov
Installable versions of the application can be found under the releases section of this repository.
Alternatively, downloads and additional information about ORNL's suite of tools can be found at ORNL's Industrial Resources site.
๐ Project Board
Track our progress and planned work on the VERIFI GitHub Project Board.
Details For Developers
This tool is written in the Angular framework (TypeScript) and uses Electron for cross-platform desktop builds.
If you plan to contribute code changes to this repository, please review the contributing guidelines first.
AI-assisted contributors should also start with the repository agent guide, architecture overview, and agent documentation index.
Getting Started
- We are using NodeJS nodejs.org. See
package.jsonfor currently supported version. - This project was generated with Angular CLI, and is typically updated to latest versions of angular as often as is reasonable.
- To install all required packages from the lockfile:
npm ci - When developing for web, run
npm run startfor a dev server. Navigate tohttp://localhost:4200/. The app will automatically reload if you change any of the source files.
Electron Development
- It is recommended to develop using the web version of the application unless you want to add an Electron specific feature.
- When developing in the Electron window, use
npm run build-watchand a re-build will trigger on save of changes. - After the app is built using the command above, you will have to start the Electron app in a second terminal window. To start the Electron app use
npm run electron. You will have to kill and restart the Electron app after changes are made.
Build
- Built artifacts will be stored in the
/distdirectory. - General build for Electron:
npm run build - Production Web Build:
npm run build-prod - Production Electron Build:
npm run build-prod-electron
Testing
VERIFI uses Vitest for fast unit tests and Playwright with Chromium for tests that require native browser APIs such as IndexedDB and Web Workers.
- Run fast unit tests in watch mode:
npm test - Run fast unit tests once:
npm run test:ci - Install Chromium before running browser tests locally:
npx playwright install chromium - Run browser tests in Chromium:
npm run test:browser - Run browser tests once in headless Chromium:
npm run test:browser:ci - Run the complete CI test suite:
npm run test:all:ci - Generate informational scoped coverage:
npm run test:coverage
Fast tests use the .spec.ts suffix. Tests that require a real browser use .browser.spec.ts and are kept out of the fast jsdom suite.
Behavior-changing pull requests should add the lowest-cost meaningful automated coverage, or document why focused manual evidence is more appropriate. Creation-only specs do not count as coverage. Pull requests targeting master or develop run both the fast and browser suites in GitHub Actions.
See the testing guide for the risk-based pull-request policy, test-layer decision table, coverage policy, and executable examples.
Native Installers
npm run distwill create Electron installers for your operating system.- Installer will be created in an
./output/directory.
Mac Code Signing
-
Run
electron-builder -mto build and sign your mac dmg. -
Run
xcrun altool --notarize-app --primary-bundle-id "com.ornl.verifi" --username "<APPLE USERNAME>" --password "<APPLE APP PASSWORD>" --file VERIFI-x.x.x-x.dmg -itc_provider "<CERT UID>" --verboseto notarize your signed dmg. -
Run
xcrun stapler staple VERIFI-x.x.x-x.dmgto staple the notarization.
Note: APPLE APP PASSWORD is an app-specific password (not your Apple ID password).
License
This project is licensed under the MIT License. See LICENSE for details.