Skip to content

opfab/operatorfabric-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OperatorFabric README

MPL-2.0 License Build Status Quality Gate Coverage Code Smells CII Best Practices OperatorFabric Slack Channel

See our website opfab.github.io for the complete documentation.

1. Introduction

OperatorFabric is a modular, extensible, industrial-strength platform for use in electricity, water, and other utility operations.

It aims to facilitate operational activities for utilities in two ways :

  • Centralize real time business events in a single place to avoid having multiple screens/software. To do so, OperatorFabric provides

    • event notifications named "cards" with filtering features (severity , date , process …​ )

    • event dispatching rules on a per user basis (based on groups, organizational entities, processes…​ )

    • event-sending endpoints for business applications

    • a mechanism of templating to customize events rendering (using HTML5 )

    • a view of the events on a timeline or a calendar

    • storage of all the events (archive feature)

    • notifications via sounds

    • possibilities to integrate screen form other applications

  • Facilitate interactions between operational control centers:

    • Share information in real time, as pre-formatted cards that can be sent either manually by operators or automatically by external solutions.

    • Introduce pre-formatted question/response exchanges between control centers. This can be used to implement operational processes (with the notion of "last time to respond").

    • Share events in calendar (also allowing repeating events)

In addition, the following features are available: internationalization, light/dark mode for the UI, realtime connected users supervision, authorization mechanism.

Integration with existing IT systems is an overarching concern: support of Firefox and Chromium-based browsers, docker deployment, communication with business applications via REST API or Kafka, integration with external authentication systems (via OAuth2), monitoring via Prometheus endpoints.

OperatorFabric is part of the LF Energy coalition, a project of The Linux Foundation that supports open source innovation projects within the energy and electricity sectors.

OpFab is an open source platform licensed under Mozilla Public License V2. The source code is hosted on GitHub in this repository : operatorfabric-core.

Documentation is available at opfab.github.io/

UI screenshot

2. Try it!

If you want to try OperatorFabric (see what the UI looks like with some test cards) in a few minutes, follow the steps below.

  1. Clone this repository

    git clone https://github.com/opfab/operatorfabric-core.git
    cd operatorfabric-core
  2. Launch our demo docker compose file

    cd ./config/docker
    ./startOpfab.sh
  3. Once script is finished, log into the application UI at localhost:2002/ using operator1_fr/test as credentials.

  4. Push basic configuration and cards using the following test scripts

    ./src/test/resources/loadTestConf.sh
    ./src/test/resources/send6TestCards.sh
Tip
If you want to experiment in more depth and have more details on how it works (as well as some troubleshooting), check out our Getting Started guide!

3. Technology stack

3.1. Development

OperatorFabric is mostly written in Java and based on the Spring framework. This makes writing and integrating software for a simplified and better coordination very easy.

Using Java Using Spring Using Angular Using Swagger Using Swagger Using Swagger

3.2. Continuous Integration / Continuous Delivery

OperatorFabric is built and integrated using battle-tested tools and (open) platforms.

Built with Gradle Using Github Actions Using SonarCloud

4. Licensing

This project and all its sub-projects are licensed under Mozilla Public License V2.0. See LICENSE.txt

5. Contributing

Read our Community Documentation for more information on how to contribute to the project.