An open API service indexing awesome lists of open source software.

https://github.com/opfab/operatorfabric-core

Main operatorfabric program
https://github.com/opfab/operatorfabric-core

alerting collaboration energy hypervision linux-foundation platform

Last synced: 5 months ago
JSON representation

Main operatorfabric program

Awesome Lists containing this project

README

        

// Copyright (c) 2018-2024 RTE (http://www.rte-france.com)
// See AUTHORS.txt
// This document is subject to the terms of the Creative Commons Attribution 4.0 International license.
// If a copy of the license was not distributed with this
// file, You can obtain one at https://creativecommons.org/licenses/by/4.0/.
// SPDX-License-Identifier: CC-BY-4.0

:imagesdir: src/docs/asciidoc/images

:sectnums:
:icons: font
:hide-uri-scheme:

= OperatorFabric README

image:https://img.shields.io/badge/license-MPL_2.0-blue.svg[MPL-2.0
License,link=https://www.mozilla.org/en-US/MPL/2.0/]
image:https://img.shields.io/github/workflow/status/opfab/operatorfabric-core/CI/develop[Build
Status,link=https://github.com/opfab/operatorfabric-core/actions]
image:https://sonarcloud.io/api/project_badges/measure?project=org.lfenergy.operatorfabric%3Aoperatorfabric-core&metric=alert_status[Quality
Gate,link=https://sonarcloud.io/dashboard?id=org.lfenergy.operatorfabric%3Aoperatorfabric-core]
image:https://sonarcloud.io/api/project_badges/measure?project=org.lfenergy.operatorfabric%3Aoperatorfabric-core&metric=coverage[Coverage,link=https://sonarcloud.io/component_measures?id=org.lfenergy.operatorfabric%3Aoperatorfabric-core&metric=Coverage]
image:https://sonarcloud.io/api/project_badges/measure?project=org.lfenergy.operatorfabric%3Aoperatorfabric-core&metric=code_smells[Code
Smells,link=https://sonarcloud.io/component_measures?id=org.lfenergy.operatorfabric%3Aoperatorfabric-core&metric=Maintainability]
image:https://bestpractices.coreinfrastructure.org/projects/4806/badge[CII Best Practices,link=https://bestpractices.coreinfrastructure.org/projects/4806]
image:https://img.shields.io/badge/Join_us_on-Slack-blueviolet[OperatorFabric Slack Channel,link=https://lfenergy.slack.com/archives/C025ZGJPXM4]

See our website link:http://opfab.github.io/[opfab.github.io] for the complete documentation.

== Introduction

//tag::short_description[]
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 https://www.lfenergy.org/[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 https://www.mozilla.org/en-US/MPL/2.0/[Mozilla Public License V2].
The source code is hosted on GitHub in this repository : https://github.com/opfab/operatorfabric-core[operatorfabric-core].

Documentation is available at https://opfab.github.io/

//end::short_description[]

image::feed_screenshot.png[UI screenshot]

== 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.

. Clone this repository
+
----
git clone https://github.com/opfab/operatorfabric-core.git
cd operatorfabric-core
----

. Launch our demo docker compose file
+
----
cd ./config/docker
./startOpfab.sh
----

. Once script is finished, log into the application UI at *localhost:2002/* using operator1_fr/test as credentials.

. Push basic configuration and cards using the following test scripts
+
[source,shell]
----
./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
link:https://opfab.github.io/documentation/current/getting_started/[Getting Started guide]!

== Technology stack

=== 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.

image:https://img.shields.io/badge/Using-Java-%237473C0.svg?style=for-the-badge[Using Java,link=https://www.java.com]
image:https://img.shields.io/badge/Using-Spring-%236db33f.svg?style=for-the-badge[Using Spring,link=https://spring.io/]
image:https://img.shields.io/badge/Using-Angular-%237473C0.svg?style=for-the-badge[Using Angular,link=https://angular.io/]
image:https://img.shields.io/badge/Using-MongoDB-%236db33f.svg?style=for-the-badge[Using Swagger,link=https://www.mongodb.com/community/]
image:https://img.shields.io/badge/Using-Swagger-%237473C0.svg?style=for-the-badge[Using Swagger,link=https://swagger.io/]
image:https://img.shields.io/badge/Using-RabbitMQ-%236db33f.svg?style=for-the-badge[Using Swagger,link=https://www.rabbitmq.com/]

=== Continuous Integration / Continuous Delivery

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

image:https://img.shields.io/badge/Built%20with-Gradle-%23410099.svg?style=for-the-badge[Built with Gradle,link=https://gradle.org/]
image:https://img.shields.io/badge/Using-Github%20Actions-%23FF647D.svg?style=for-the-badge[Using Github Actions,link=https://github.com/opfab/operatorfabric-core/actions]
image:https://img.shields.io/badge/Using-SonarCloud-%23FF647D.svg?style=for-the-badge[Using SonarCloud,link=https://sonarcloud.io/dashboard?id=org.lfenergy.operatorfabric%3Aoperatorfabric-core]

== Licensing

This project and all its sub-projects are licensed under
https://www.mozilla.org/en-US/MPL/2.0/[Mozilla Public License V2.0]. See
link:LICENSE.txt[LICENSE.txt]

== Contributing

Read our link:https://opfab.github.io/documentation/current/community/[Community Documentation] for more information on
how to contribute to the project.