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
- Host: GitHub
- URL: https://github.com/opfab/operatorfabric-core
- Owner: opfab
- License: mpl-2.0
- Created: 2018-09-27T09:36:25.000Z (over 6 years ago)
- Default Branch: develop
- Last Pushed: 2024-10-29T10:26:30.000Z (6 months ago)
- Last Synced: 2024-10-29T12:06:05.677Z (6 months ago)
- Topics: alerting, collaboration, energy, hypervision, linux-foundation, platform
- Language: TypeScript
- Homepage: https://opfab.github.io
- Size: 51.9 MB
- Stars: 40
- Watchers: 9
- Forks: 27
- Open Issues: 102
-
Metadata Files:
- Readme: README.adoc
- Contributing: CONTRIBUTING.adoc
- License: LICENSE.txt
- Security: SECURITY.md
- Authors: AUTHORS.txt
Awesome Lists containing this project
- open-sustainable-technology - OperatorFabric - A modular, extensible, industrial-strength and field-tested platform for use in electricity, water and other utility operations. (Energy Systems / Grid Management and Microgrid)
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.