cahaseler / EMPACT

Environmental and Maturity Program Assessment and Control Tool: An Open Source IP2M METRR model implementation
Creative Commons Attribution 4.0 International
1 stars 1 forks source link

EMPACT

License: CC BY 4.0

Security Rating Maintainability Rating

EMPACT: The Environment and Maturity Program Assessment and Control Tool is an Open Source implementation of the IP2M METRR Environmental and Maturity evaluation model. The IP2M METRR model was developed by the US Department of Energy in collaboration with Arizona State University. EMPACT is an open source project intended as a collaborative effort by the greater earned value community and is not at this time funded or endorsed by ASU.

DOE-PM-COLOR_ON_WHITE_600px

This project is sponsored by the US Department of Energy's Office of Project Management, which is contributing contract developer resources.

This tool is based on the originally published research findings in the DOE-funded study but is developed independently from ASU's proprietary IP2M METRR tool and does not reuse any code from that tool. Development priorities and features are derived from practical lessons learned from use of ASU's IP2M METRR tool.

Current Status

A proof of concept framework has been developed allowing for a single NextJS Web codebase to be deployed as a locally installable fully offline Windows application and as a Web Server with backend database functions for shared usage. Continuous Integration / Continuous delivery has been designed and deployed with Github Actions so that any merge to the 'main' branch of this project automatically builds and publishes a Docker container for the web site and an MSI and EXE installable application.

Additional systems need to be added to allow for the website development and prototyping the database and backend interactions, as well as the web security layer. Once the framework is fully fleshed out, we can begin creation of the actual web interfaces and functionality.

Licensing

This is Open Source software licensed under CC BY 4.0. See LICENSE file for more information.

Under the CC BY 4.0 license, you are free to:

Under the following terms:

No warranties are given. The license may not give you all of the permissions necessary for your intended use. For example, other rights such as publicity, privacy, or moral rights may limit how you use the material.

Development Objectives

Software Approach

Creating a tool with a reusable codebase that can be run as a modern web server with appropriate security considerations and also run as a fully offline local application installable with a standard Windows MSI installer is a genuine software challenge that pushes the capabilities of even modern software frameworks and tools.

After researching available options, and thanks to new advances in tools over the last few years as larger companies begin to publish parallel web and desktop versions of their applications (like Teams, Slack, and others), this is now possible. Unlike those applications, this tool needs to be able to run fully offline rather than connecting to an external server, so an additional layer of complexity is needed.

Here is the approach that will be followed:

Why these technologies?

Contributing

This is an open source project and intended as a collaborative effort. Especially if you or your organization is using this software to facilitate reviews or otherwise benefit, there is an informal expectation that you give back to the greater earned value community by contributing to the codebase and collaborating on this project.

Code Structure

The codebase is organized as follows, with files relating to the whole project at the parent level and subfolders for specific components:

Database Structure

See the Prisma Schema for more details on the database schema, a diagram is below:

Database Diagram

Installation

There are several approaches available to use this tool, described below.

Standalone usage

Simply download and run the application installer provided in the Releases section of the Github Repository here: https://github.com/empact/EMPACT/releases. The tool can be installed and run offline, with data stored on your local machine. Data can be exported using the export tools to provide it to others.

Advantages to this approach:

Disadvantages to this approach:

Server installation with external MSSQL or PostGreSQL databases

This is the reccomended approach for a production level application, and involves installing the server Docker container and configuring it to point to an external PostGreSQL or MSSQL database that you own and manage - likely one that you use for other applications already. See the Installation Guide for more details.

Advantages to this approach:

Disadvantages to this approach:

Server installation with included PostGreSQL database docker container

This allows you to set up EMPACT as a standalone server running both the EMPACT container and a PostGreSQL database. See the Installation Guide for more details.

Advantages to this approach:

Disadvantages to this approach: