Latest commit

History

7,762 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation


EnergyWeb
EnergyWeb Origin

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates (EACs). This repository is an entry point to Origin systems. It has a goal of explaining briefly the whole system and providing you with insight and info where to explore next.

🚧 Documentation available at https://energy-web-foundation-origin.readthedocs-hosted.com/en/latest/ 🚧

Table of Contents

Packages

SDK Releases

PackageStableCanaryDescription
@energyweb/origin-device-registry-apinpmnpmGeneric implementation of API working with Origin device registry
@energyweb/origin-device-registry-irec-local-apinpmnpmAPI for local version of I-REC compatible registry
@energyweb/origin-energy-apinpmnpmAPI for Smart meter reads
@energyweb/origin-organization-irec-apinpmnpmAPI for I-REC based organizations
@energyweb/origin-backendnpmnpmExample backend necessary for running Origin
@energyweb/issuernpmnpmEnergy Attribute Certificates Issuer Module
@energyweb/issuer-apinpmnpmNestJS module for interacting with renewable energy certificates
@energyweb/issuer-irec-apinpmnpmNestJS module for interacting with renewable energy certificates with IREC connectivity
@energyweb/exchangenpmnpmA service project hosting order book based exchange
@energyweb/exchange-irecnpmnpmA service project hosting order book based I-REC specific exchange
@energyweb/exchange-corenpmnpmGeneric EACs order book product and matching
@energyweb/exchange-core-irecnpmnpmAn IREC based EACs product and matching
@energyweb/exchange-io-erc1888npmnpmERC1888 withdwaral/deposit processing for exchange
@energyweb/utils-generalnpmnpmGeneral Utilities
@energyweb/origin-ui-corenpmnpmReact components library for building Origin marketplace user interface
@energyweb/origin-ui-localizationnpmnpmLocalization library for building Origin marketplace user interface
@energyweb/origin-ui-themenpmnpmMaterial-UI theme configuration and styling utilities
@energyweb/origin-ui-utilsnpmnpmUI general utilities

Applications, Infrastructure and Demo

PackageDescription
@energyweb/origin-backend-irec-appBootstrap project for Origin API that uses I-REC API connection
@energyweb/origin-uiRoot of UI for Origin
@energyweb/migrations-irecDeployment and configuration utilities

Packages types

Origin monorepo produce 3 types of the packages that are meant to be used in different use-cases:

Stable

Stable Origin SDK packages are created during release branch build.

Install using yarn add @energyweb/{package}

Canary

Canary packages are created during master branch builds. Canary reflects current state of the master branch, they should be a working versions considers as alpha

Install using yarn add @energyweb/{package}@canary

Preview

Preview packages are built on a special preview branch, this is mostly used as interal tool for tests, demos, discussions.

Install using yarn add @energyweb/{package}@preview

Preparation

  1. Make sure you are using Node 14.x.x
  2. Make sure have latest @microsoft/rush package manager installed.
npm install -g @microsoft/rush
  1. Make sure you have Java runtime installed
  2. Install Postgres 12.x+ and create a new database named origin.

We recommend using Docker based setup as follows (requires psql command line tool installed):

docker pull postgres
docker run --name origin-postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=origin -d -p 5432:5432 postgres
  1. Make sure you have created a .env file in the root of the monorepo and that all necessary variables are set. Use .env.example as an example of how the .env file should look.

  2. Create InfluxDB to store smart meter readings

docker run --rm --env-file ./.env -v $PWD/influxdb-local:/var/lib/influxdb influxdb:1.8 /init-influxdb.sh

Run the InfluxDB instance

docker run --name energy-influxdb --env-file ./.env -d -p 8086:8086 -v $PWD/influxdb-local:/var/lib/influxdb -v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro influxdb:1.8
  1. For custom DB credentials, ports, db name etc refer to https://github.com/energywebfoundation/origin/tree/master/packages/apps/origin-backend-irec-app#development

Installation

rush update

Build

rush build

Test

rush test:e2e

Run demo

After you have the .env file created, installed dependencies (rush install) and build completed (rush build) run the following command:

rush run:origin

Visit the UI at: http://localhost:3000.

Heroku environment provisioning

For fast deployment to Heroku you can run the available script provision-heroku-origin

PREFIX=<name> STAGE=<stage> TEAM=<team> ./provision-heroku-origin.sh

Naming convention is for apps:

${PREFIX}-origin-ui-${STAGE}
${PREFIX}-origin-api-${STAGE}

For e.g in order to create ptt-origin-ui-stable run the script with:

PREFIX=ptt STAGE=stable TEAM=<team> ./provision-heroku-origin.sh

Note: This script assumes that Heroku CLI tool is installed and your are logged in https://devcenter.heroku.com/articles/heroku-cli

Energy Attribute Certificates

Energy Attribute Certificates, or EACs, is an official document which guarantees that produced energy comes from a renewable source. There are different standards that regulate how data is stored and validated. In Europe, this document is called Guarantee of Origin (GO), in North America, it's called Renewable Energy Certificate (REC), and in parts of Asia, Africa, the Middle East, and Latin America governing standard is International REC (I-REC). Standards do vary, but they all share the same core principles.

The main purpose of EACs is to act as an accounting vehicle to prove that consumed energy came from a renewable source. EACs are mostly used to address sustainability reports regarding Scope 2 emissions.

Deployment

For deployment instructions please refer to Deployment wiki page.

Contribution guidelines

If you want to contribute to Origin, be sure to follow classic open source contribution guidelines (described below).

  1. Commiting a change
    • Fork the repository
    • Make a change to repo code
    • Commit the change to the master branch
  2. Pull request

About

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates

Resources

Contributing

Stars

109 stars

Watchers

20 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

7,762 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation


EnergyWeb
EnergyWeb Origin

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates (EACs). This repository is an entry point to Origin systems. It has a goal of explaining briefly the whole system and providing you with insight and info where to explore next.

🚧 Documentation available at https://energy-web-foundation-origin.readthedocs-hosted.com/en/latest/ 🚧

Table of Contents

Packages

SDK Releases

PackageStableCanaryDescription
@energyweb/origin-device-registry-apinpmnpmGeneric implementation of API working with Origin device registry
@energyweb/origin-device-registry-irec-local-apinpmnpmAPI for local version of I-REC compatible registry
@energyweb/origin-energy-apinpmnpmAPI for Smart meter reads
@energyweb/origin-organization-irec-apinpmnpmAPI for I-REC based organizations
@energyweb/origin-backendnpmnpmExample backend necessary for running Origin
@energyweb/issuernpmnpmEnergy Attribute Certificates Issuer Module
@energyweb/issuer-apinpmnpmNestJS module for interacting with renewable energy certificates
@energyweb/issuer-irec-apinpmnpmNestJS module for interacting with renewable energy certificates with IREC connectivity
@energyweb/exchangenpmnpmA service project hosting order book based exchange
@energyweb/exchange-irecnpmnpmA service project hosting order book based I-REC specific exchange
@energyweb/exchange-corenpmnpmGeneric EACs order book product and matching
@energyweb/exchange-core-irecnpmnpmAn IREC based EACs product and matching
@energyweb/exchange-io-erc1888npmnpmERC1888 withdwaral/deposit processing for exchange
@energyweb/utils-generalnpmnpmGeneral Utilities
@energyweb/origin-ui-corenpmnpmReact components library for building Origin marketplace user interface
@energyweb/origin-ui-localizationnpmnpmLocalization library for building Origin marketplace user interface
@energyweb/origin-ui-themenpmnpmMaterial-UI theme configuration and styling utilities
@energyweb/origin-ui-utilsnpmnpmUI general utilities

Applications, Infrastructure and Demo

PackageDescription
@energyweb/origin-backend-irec-appBootstrap project for Origin API that uses I-REC API connection
@energyweb/origin-uiRoot of UI for Origin
@energyweb/migrations-irecDeployment and configuration utilities

Packages types

Origin monorepo produce 3 types of the packages that are meant to be used in different use-cases:

Stable

Stable Origin SDK packages are created during release branch build.

Install using yarn add @energyweb/{package}

Canary

Canary packages are created during master branch builds. Canary reflects current state of the master branch, they should be a working versions considers as alpha

Install using yarn add @energyweb/{package}@canary

Preview

Preview packages are built on a special preview branch, this is mostly used as interal tool for tests, demos, discussions.

Install using yarn add @energyweb/{package}@preview

Preparation

  1. Make sure you are using Node 14.x.x
  2. Make sure have latest @microsoft/rush package manager installed.
npm install -g @microsoft/rush
  1. Make sure you have Java runtime installed
  2. Install Postgres 12.x+ and create a new database named origin.

We recommend using Docker based setup as follows (requires psql command line tool installed):

docker pull postgres
docker run --name origin-postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=origin -d -p 5432:5432 postgres
  1. Make sure you have created a .env file in the root of the monorepo and that all necessary variables are set. Use .env.example as an example of how the .env file should look.

  2. Create InfluxDB to store smart meter readings

docker run --rm --env-file ./.env -v $PWD/influxdb-local:/var/lib/influxdb influxdb:1.8 /init-influxdb.sh

Run the InfluxDB instance

docker run --name energy-influxdb --env-file ./.env -d -p 8086:8086 -v $PWD/influxdb-local:/var/lib/influxdb -v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro influxdb:1.8
  1. For custom DB credentials, ports, db name etc refer to https://github.com/energywebfoundation/origin/tree/master/packages/apps/origin-backend-irec-app#development

Installation

rush update

Build

rush build

Test

rush test:e2e

Run demo

After you have the .env file created, installed dependencies (rush install) and build completed (rush build) run the following command:

rush run:origin

Visit the UI at: http://localhost:3000.

Heroku environment provisioning

For fast deployment to Heroku you can run the available script provision-heroku-origin

PREFIX=<name> STAGE=<stage> TEAM=<team> ./provision-heroku-origin.sh

Naming convention is for apps:

${PREFIX}-origin-ui-${STAGE}
${PREFIX}-origin-api-${STAGE}

For e.g in order to create ptt-origin-ui-stable run the script with:

PREFIX=ptt STAGE=stable TEAM=<team> ./provision-heroku-origin.sh

Note: This script assumes that Heroku CLI tool is installed and your are logged in https://devcenter.heroku.com/articles/heroku-cli

Energy Attribute Certificates

Energy Attribute Certificates, or EACs, is an official document which guarantees that produced energy comes from a renewable source. There are different standards that regulate how data is stored and validated. In Europe, this document is called Guarantee of Origin (GO), in North America, it's called Renewable Energy Certificate (REC), and in parts of Asia, Africa, the Middle East, and Latin America governing standard is International REC (I-REC). Standards do vary, but they all share the same core principles.

The main purpose of EACs is to act as an accounting vehicle to prove that consumed energy came from a renewable source. EACs are mostly used to address sustainability reports regarding Scope 2 emissions.

Deployment

For deployment instructions please refer to Deployment wiki page.

Contribution guidelines

If you want to contribute to Origin, be sure to follow classic open source contribution guidelines (described below).

  1. Commiting a change
    • Fork the repository
    • Make a change to repo code
    • Commit the change to the master branch
  2. Pull request

About

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates

Resources

Contributing

Stars

109 stars

Watchers

20 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

7,762 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation


EnergyWeb
EnergyWeb Origin

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates (EACs). This repository is an entry point to Origin systems. It has a goal of explaining briefly the whole system and providing you with insight and info where to explore next.

🚧 Documentation available at https://energy-web-foundation-origin.readthedocs-hosted.com/en/latest/ 🚧

Table of Contents

Packages

SDK Releases

PackageStableCanaryDescription
@energyweb/origin-device-registry-apinpmnpmGeneric implementation of API working with Origin device registry
@energyweb/origin-device-registry-irec-local-apinpmnpmAPI for local version of I-REC compatible registry
@energyweb/origin-energy-apinpmnpmAPI for Smart meter reads
@energyweb/origin-organization-irec-apinpmnpmAPI for I-REC based organizations
@energyweb/origin-backendnpmnpmExample backend necessary for running Origin
@energyweb/issuernpmnpmEnergy Attribute Certificates Issuer Module
@energyweb/issuer-apinpmnpmNestJS module for interacting with renewable energy certificates
@energyweb/issuer-irec-apinpmnpmNestJS module for interacting with renewable energy certificates with IREC connectivity
@energyweb/exchangenpmnpmA service project hosting order book based exchange
@energyweb/exchange-irecnpmnpmA service project hosting order book based I-REC specific exchange
@energyweb/exchange-corenpmnpmGeneric EACs order book product and matching
@energyweb/exchange-core-irecnpmnpmAn IREC based EACs product and matching
@energyweb/exchange-io-erc1888npmnpmERC1888 withdwaral/deposit processing for exchange
@energyweb/utils-generalnpmnpmGeneral Utilities
@energyweb/origin-ui-corenpmnpmReact components library for building Origin marketplace user interface
@energyweb/origin-ui-localizationnpmnpmLocalization library for building Origin marketplace user interface
@energyweb/origin-ui-themenpmnpmMaterial-UI theme configuration and styling utilities
@energyweb/origin-ui-utilsnpmnpmUI general utilities

Applications, Infrastructure and Demo

PackageDescription
@energyweb/origin-backend-irec-appBootstrap project for Origin API that uses I-REC API connection
@energyweb/origin-uiRoot of UI for Origin
@energyweb/migrations-irecDeployment and configuration utilities

Packages types

Origin monorepo produce 3 types of the packages that are meant to be used in different use-cases:

Stable

Stable Origin SDK packages are created during release branch build.

Install using yarn add @energyweb/{package}

Canary

Canary packages are created during master branch builds. Canary reflects current state of the master branch, they should be a working versions considers as alpha

Install using yarn add @energyweb/{package}@canary

Preview

Preview packages are built on a special preview branch, this is mostly used as interal tool for tests, demos, discussions.

Install using yarn add @energyweb/{package}@preview

Preparation

  1. Make sure you are using Node 14.x.x
  2. Make sure have latest @microsoft/rush package manager installed.
npm install -g @microsoft/rush
  1. Make sure you have Java runtime installed
  2. Install Postgres 12.x+ and create a new database named origin.

We recommend using Docker based setup as follows (requires psql command line tool installed):

docker pull postgres
docker run --name origin-postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=origin -d -p 5432:5432 postgres
  1. Make sure you have created a .env file in the root of the monorepo and that all necessary variables are set. Use .env.example as an example of how the .env file should look.

  2. Create InfluxDB to store smart meter readings

docker run --rm --env-file ./.env -v $PWD/influxdb-local:/var/lib/influxdb influxdb:1.8 /init-influxdb.sh

Run the InfluxDB instance

docker run --name energy-influxdb --env-file ./.env -d -p 8086:8086 -v $PWD/influxdb-local:/var/lib/influxdb -v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro influxdb:1.8
  1. For custom DB credentials, ports, db name etc refer to https://github.com/energywebfoundation/origin/tree/master/packages/apps/origin-backend-irec-app#development

Installation

rush update

Build

rush build

Test

rush test:e2e

Run demo

After you have the .env file created, installed dependencies (rush install) and build completed (rush build) run the following command:

rush run:origin

Visit the UI at: http://localhost:3000.

Heroku environment provisioning

For fast deployment to Heroku you can run the available script provision-heroku-origin

PREFIX=<name> STAGE=<stage> TEAM=<team> ./provision-heroku-origin.sh

Naming convention is for apps:

${PREFIX}-origin-ui-${STAGE}
${PREFIX}-origin-api-${STAGE}

For e.g in order to create ptt-origin-ui-stable run the script with:

PREFIX=ptt STAGE=stable TEAM=<team> ./provision-heroku-origin.sh

Note: This script assumes that Heroku CLI tool is installed and your are logged in https://devcenter.heroku.com/articles/heroku-cli

Energy Attribute Certificates

Energy Attribute Certificates, or EACs, is an official document which guarantees that produced energy comes from a renewable source. There are different standards that regulate how data is stored and validated. In Europe, this document is called Guarantee of Origin (GO), in North America, it's called Renewable Energy Certificate (REC), and in parts of Asia, Africa, the Middle East, and Latin America governing standard is International REC (I-REC). Standards do vary, but they all share the same core principles.

The main purpose of EACs is to act as an accounting vehicle to prove that consumed energy came from a renewable source. EACs are mostly used to address sustainability reports regarding Scope 2 emissions.

Deployment

For deployment instructions please refer to Deployment wiki page.

Contribution guidelines

If you want to contribute to Origin, be sure to follow classic open source contribution guidelines (described below).

  1. Commiting a change
    • Fork the repository
    • Make a change to repo code
    • Commit the change to the master branch
  2. Pull request

About

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates

Resources

Contributing

Stars

109 stars

Watchers

20 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

7,762 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation


EnergyWeb
EnergyWeb Origin

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates (EACs). This repository is an entry point to Origin systems. It has a goal of explaining briefly the whole system and providing you with insight and info where to explore next.

🚧 Documentation available at https://energy-web-foundation-origin.readthedocs-hosted.com/en/latest/ 🚧

Table of Contents

Packages

SDK Releases

PackageStableCanaryDescription
@energyweb/origin-device-registry-apinpmnpmGeneric implementation of API working with Origin device registry
@energyweb/origin-device-registry-irec-local-apinpmnpmAPI for local version of I-REC compatible registry
@energyweb/origin-energy-apinpmnpmAPI for Smart meter reads
@energyweb/origin-organization-irec-apinpmnpmAPI for I-REC based organizations
@energyweb/origin-backendnpmnpmExample backend necessary for running Origin
@energyweb/issuernpmnpmEnergy Attribute Certificates Issuer Module
@energyweb/issuer-apinpmnpmNestJS module for interacting with renewable energy certificates
@energyweb/issuer-irec-apinpmnpmNestJS module for interacting with renewable energy certificates with IREC connectivity
@energyweb/exchangenpmnpmA service project hosting order book based exchange
@energyweb/exchange-irecnpmnpmA service project hosting order book based I-REC specific exchange
@energyweb/exchange-corenpmnpmGeneric EACs order book product and matching
@energyweb/exchange-core-irecnpmnpmAn IREC based EACs product and matching
@energyweb/exchange-io-erc1888npmnpmERC1888 withdwaral/deposit processing for exchange
@energyweb/utils-generalnpmnpmGeneral Utilities
@energyweb/origin-ui-corenpmnpmReact components library for building Origin marketplace user interface
@energyweb/origin-ui-localizationnpmnpmLocalization library for building Origin marketplace user interface
@energyweb/origin-ui-themenpmnpmMaterial-UI theme configuration and styling utilities
@energyweb/origin-ui-utilsnpmnpmUI general utilities

Applications, Infrastructure and Demo

PackageDescription
@energyweb/origin-backend-irec-appBootstrap project for Origin API that uses I-REC API connection
@energyweb/origin-uiRoot of UI for Origin
@energyweb/migrations-irecDeployment and configuration utilities

Packages types

Origin monorepo produce 3 types of the packages that are meant to be used in different use-cases:

Stable

Stable Origin SDK packages are created during release branch build.

Install using yarn add @energyweb/{package}

Canary

Canary packages are created during master branch builds. Canary reflects current state of the master branch, they should be a working versions considers as alpha

Install using yarn add @energyweb/{package}@canary

Preview

Preview packages are built on a special preview branch, this is mostly used as interal tool for tests, demos, discussions.

Install using yarn add @energyweb/{package}@preview

Preparation

  1. Make sure you are using Node 14.x.x
  2. Make sure have latest @microsoft/rush package manager installed.
npm install -g @microsoft/rush
  1. Make sure you have Java runtime installed
  2. Install Postgres 12.x+ and create a new database named origin.

We recommend using Docker based setup as follows (requires psql command line tool installed):

docker pull postgres
docker run --name origin-postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=origin -d -p 5432:5432 postgres
  1. Make sure you have created a .env file in the root of the monorepo and that all necessary variables are set. Use .env.example as an example of how the .env file should look.

  2. Create InfluxDB to store smart meter readings

docker run --rm --env-file ./.env -v $PWD/influxdb-local:/var/lib/influxdb influxdb:1.8 /init-influxdb.sh

Run the InfluxDB instance

docker run --name energy-influxdb --env-file ./.env -d -p 8086:8086 -v $PWD/influxdb-local:/var/lib/influxdb -v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro influxdb:1.8
  1. For custom DB credentials, ports, db name etc refer to https://github.com/energywebfoundation/origin/tree/master/packages/apps/origin-backend-irec-app#development

Installation

rush update

Build

rush build

Test

rush test:e2e

Run demo

After you have the .env file created, installed dependencies (rush install) and build completed (rush build) run the following command:

rush run:origin

Visit the UI at: http://localhost:3000.

Heroku environment provisioning

For fast deployment to Heroku you can run the available script provision-heroku-origin

PREFIX=<name> STAGE=<stage> TEAM=<team> ./provision-heroku-origin.sh

Naming convention is for apps:

${PREFIX}-origin-ui-${STAGE}
${PREFIX}-origin-api-${STAGE}

For e.g in order to create ptt-origin-ui-stable run the script with:

PREFIX=ptt STAGE=stable TEAM=<team> ./provision-heroku-origin.sh

Note: This script assumes that Heroku CLI tool is installed and your are logged in https://devcenter.heroku.com/articles/heroku-cli

Energy Attribute Certificates

Energy Attribute Certificates, or EACs, is an official document which guarantees that produced energy comes from a renewable source. There are different standards that regulate how data is stored and validated. In Europe, this document is called Guarantee of Origin (GO), in North America, it's called Renewable Energy Certificate (REC), and in parts of Asia, Africa, the Middle East, and Latin America governing standard is International REC (I-REC). Standards do vary, but they all share the same core principles.

The main purpose of EACs is to act as an accounting vehicle to prove that consumed energy came from a renewable source. EACs are mostly used to address sustainability reports regarding Scope 2 emissions.

Deployment

For deployment instructions please refer to Deployment wiki page.

Contribution guidelines

If you want to contribute to Origin, be sure to follow classic open source contribution guidelines (described below).

  1. Commiting a change
    • Fork the repository
    • Make a change to repo code
    • Commit the change to the master branch
  2. Pull request

About

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates

Resources

Contributing

Stars

109 stars

Watchers

20 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

7,762 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation


EnergyWeb
EnergyWeb Origin

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates (EACs). This repository is an entry point to Origin systems. It has a goal of explaining briefly the whole system and providing you with insight and info where to explore next.

🚧 Documentation available at https://energy-web-foundation-origin.readthedocs-hosted.com/en/latest/ 🚧

Table of Contents

Packages

SDK Releases

PackageStableCanaryDescription
@energyweb/origin-device-registry-apinpmnpmGeneric implementation of API working with Origin device registry
@energyweb/origin-device-registry-irec-local-apinpmnpmAPI for local version of I-REC compatible registry
@energyweb/origin-energy-apinpmnpmAPI for Smart meter reads
@energyweb/origin-organization-irec-apinpmnpmAPI for I-REC based organizations
@energyweb/origin-backendnpmnpmExample backend necessary for running Origin
@energyweb/issuernpmnpmEnergy Attribute Certificates Issuer Module
@energyweb/issuer-apinpmnpmNestJS module for interacting with renewable energy certificates
@energyweb/issuer-irec-apinpmnpmNestJS module for interacting with renewable energy certificates with IREC connectivity
@energyweb/exchangenpmnpmA service project hosting order book based exchange
@energyweb/exchange-irecnpmnpmA service project hosting order book based I-REC specific exchange
@energyweb/exchange-corenpmnpmGeneric EACs order book product and matching
@energyweb/exchange-core-irecnpmnpmAn IREC based EACs product and matching
@energyweb/exchange-io-erc1888npmnpmERC1888 withdwaral/deposit processing for exchange
@energyweb/utils-generalnpmnpmGeneral Utilities
@energyweb/origin-ui-corenpmnpmReact components library for building Origin marketplace user interface
@energyweb/origin-ui-localizationnpmnpmLocalization library for building Origin marketplace user interface
@energyweb/origin-ui-themenpmnpmMaterial-UI theme configuration and styling utilities
@energyweb/origin-ui-utilsnpmnpmUI general utilities

Applications, Infrastructure and Demo

PackageDescription
@energyweb/origin-backend-irec-appBootstrap project for Origin API that uses I-REC API connection
@energyweb/origin-uiRoot of UI for Origin
@energyweb/migrations-irecDeployment and configuration utilities

Packages types

Origin monorepo produce 3 types of the packages that are meant to be used in different use-cases:

Stable

Stable Origin SDK packages are created during release branch build.

Install using yarn add @energyweb/{package}

Canary

Canary packages are created during master branch builds. Canary reflects current state of the master branch, they should be a working versions considers as alpha

Install using yarn add @energyweb/{package}@canary

Preview

Preview packages are built on a special preview branch, this is mostly used as interal tool for tests, demos, discussions.

Install using yarn add @energyweb/{package}@preview

Preparation

  1. Make sure you are using Node 14.x.x
  2. Make sure have latest @microsoft/rush package manager installed.
npm install -g @microsoft/rush
  1. Make sure you have Java runtime installed
  2. Install Postgres 12.x+ and create a new database named origin.

We recommend using Docker based setup as follows (requires psql command line tool installed):

docker pull postgres
docker run --name origin-postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=origin -d -p 5432:5432 postgres
  1. Make sure you have created a .env file in the root of the monorepo and that all necessary variables are set. Use .env.example as an example of how the .env file should look.

  2. Create InfluxDB to store smart meter readings

docker run --rm --env-file ./.env -v $PWD/influxdb-local:/var/lib/influxdb influxdb:1.8 /init-influxdb.sh

Run the InfluxDB instance

docker run --name energy-influxdb --env-file ./.env -d -p 8086:8086 -v $PWD/influxdb-local:/var/lib/influxdb -v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro influxdb:1.8
  1. For custom DB credentials, ports, db name etc refer to https://github.com/energywebfoundation/origin/tree/master/packages/apps/origin-backend-irec-app#development

Installation

rush update

Build

rush build

Test

rush test:e2e

Run demo

After you have the .env file created, installed dependencies (rush install) and build completed (rush build) run the following command:

rush run:origin

Visit the UI at: http://localhost:3000.

Heroku environment provisioning

For fast deployment to Heroku you can run the available script provision-heroku-origin

PREFIX=<name> STAGE=<stage> TEAM=<team> ./provision-heroku-origin.sh

Naming convention is for apps:

${PREFIX}-origin-ui-${STAGE}
${PREFIX}-origin-api-${STAGE}

For e.g in order to create ptt-origin-ui-stable run the script with:

PREFIX=ptt STAGE=stable TEAM=<team> ./provision-heroku-origin.sh

Note: This script assumes that Heroku CLI tool is installed and your are logged in https://devcenter.heroku.com/articles/heroku-cli

Energy Attribute Certificates

Energy Attribute Certificates, or EACs, is an official document which guarantees that produced energy comes from a renewable source. There are different standards that regulate how data is stored and validated. In Europe, this document is called Guarantee of Origin (GO), in North America, it's called Renewable Energy Certificate (REC), and in parts of Asia, Africa, the Middle East, and Latin America governing standard is International REC (I-REC). Standards do vary, but they all share the same core principles.

The main purpose of EACs is to act as an accounting vehicle to prove that consumed energy came from a renewable source. EACs are mostly used to address sustainability reports regarding Scope 2 emissions.

Deployment

For deployment instructions please refer to Deployment wiki page.

Contribution guidelines

If you want to contribute to Origin, be sure to follow classic open source contribution guidelines (described below).

  1. Commiting a change
    • Fork the repository
    • Make a change to repo code
    • Commit the change to the master branch
  2. Pull request

About

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates

Resources

Contributing

Stars

109 stars

Watchers

20 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

7,762 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation


EnergyWeb
EnergyWeb Origin

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates (EACs). This repository is an entry point to Origin systems. It has a goal of explaining briefly the whole system and providing you with insight and info where to explore next.

🚧 Documentation available at https://energy-web-foundation-origin.readthedocs-hosted.com/en/latest/ 🚧

Table of Contents

Packages

SDK Releases

PackageStableCanaryDescription
@energyweb/origin-device-registry-apinpmnpmGeneric implementation of API working with Origin device registry
@energyweb/origin-device-registry-irec-local-apinpmnpmAPI for local version of I-REC compatible registry
@energyweb/origin-energy-apinpmnpmAPI for Smart meter reads
@energyweb/origin-organization-irec-apinpmnpmAPI for I-REC based organizations
@energyweb/origin-backendnpmnpmExample backend necessary for running Origin
@energyweb/issuernpmnpmEnergy Attribute Certificates Issuer Module
@energyweb/issuer-apinpmnpmNestJS module for interacting with renewable energy certificates
@energyweb/issuer-irec-apinpmnpmNestJS module for interacting with renewable energy certificates with IREC connectivity
@energyweb/exchangenpmnpmA service project hosting order book based exchange
@energyweb/exchange-irecnpmnpmA service project hosting order book based I-REC specific exchange
@energyweb/exchange-corenpmnpmGeneric EACs order book product and matching
@energyweb/exchange-core-irecnpmnpmAn IREC based EACs product and matching
@energyweb/exchange-io-erc1888npmnpmERC1888 withdwaral/deposit processing for exchange
@energyweb/utils-generalnpmnpmGeneral Utilities
@energyweb/origin-ui-corenpmnpmReact components library for building Origin marketplace user interface
@energyweb/origin-ui-localizationnpmnpmLocalization library for building Origin marketplace user interface
@energyweb/origin-ui-themenpmnpmMaterial-UI theme configuration and styling utilities
@energyweb/origin-ui-utilsnpmnpmUI general utilities

Applications, Infrastructure and Demo

PackageDescription
@energyweb/origin-backend-irec-appBootstrap project for Origin API that uses I-REC API connection
@energyweb/origin-uiRoot of UI for Origin
@energyweb/migrations-irecDeployment and configuration utilities

Packages types

Origin monorepo produce 3 types of the packages that are meant to be used in different use-cases:

Stable

Stable Origin SDK packages are created during release branch build.

Install using yarn add @energyweb/{package}

Canary

Canary packages are created during master branch builds. Canary reflects current state of the master branch, they should be a working versions considers as alpha

Install using yarn add @energyweb/{package}@canary

Preview

Preview packages are built on a special preview branch, this is mostly used as interal tool for tests, demos, discussions.

Install using yarn add @energyweb/{package}@preview

Preparation

  1. Make sure you are using Node 14.x.x
  2. Make sure have latest @microsoft/rush package manager installed.
npm install -g @microsoft/rush
  1. Make sure you have Java runtime installed
  2. Install Postgres 12.x+ and create a new database named origin.

We recommend using Docker based setup as follows (requires psql command line tool installed):

docker pull postgres
docker run --name origin-postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=origin -d -p 5432:5432 postgres
  1. Make sure you have created a .env file in the root of the monorepo and that all necessary variables are set. Use .env.example as an example of how the .env file should look.

  2. Create InfluxDB to store smart meter readings

docker run --rm --env-file ./.env -v $PWD/influxdb-local:/var/lib/influxdb influxdb:1.8 /init-influxdb.sh

Run the InfluxDB instance

docker run --name energy-influxdb --env-file ./.env -d -p 8086:8086 -v $PWD/influxdb-local:/var/lib/influxdb -v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro influxdb:1.8
  1. For custom DB credentials, ports, db name etc refer to https://github.com/energywebfoundation/origin/tree/master/packages/apps/origin-backend-irec-app#development

Installation

rush update

Build

rush build

Test

rush test:e2e

Run demo

After you have the .env file created, installed dependencies (rush install) and build completed (rush build) run the following command:

rush run:origin

Visit the UI at: http://localhost:3000.

Heroku environment provisioning

For fast deployment to Heroku you can run the available script provision-heroku-origin

PREFIX=<name> STAGE=<stage> TEAM=<team> ./provision-heroku-origin.sh

Naming convention is for apps:

${PREFIX}-origin-ui-${STAGE}
${PREFIX}-origin-api-${STAGE}

For e.g in order to create ptt-origin-ui-stable run the script with:

PREFIX=ptt STAGE=stable TEAM=<team> ./provision-heroku-origin.sh

Note: This script assumes that Heroku CLI tool is installed and your are logged in https://devcenter.heroku.com/articles/heroku-cli

Energy Attribute Certificates

Energy Attribute Certificates, or EACs, is an official document which guarantees that produced energy comes from a renewable source. There are different standards that regulate how data is stored and validated. In Europe, this document is called Guarantee of Origin (GO), in North America, it's called Renewable Energy Certificate (REC), and in parts of Asia, Africa, the Middle East, and Latin America governing standard is International REC (I-REC). Standards do vary, but they all share the same core principles.

The main purpose of EACs is to act as an accounting vehicle to prove that consumed energy came from a renewable source. EACs are mostly used to address sustainability reports regarding Scope 2 emissions.

Deployment

For deployment instructions please refer to Deployment wiki page.

Contribution guidelines

If you want to contribute to Origin, be sure to follow classic open source contribution guidelines (described below).

  1. Commiting a change
    • Fork the repository
    • Make a change to repo code
    • Commit the change to the master branch
  2. Pull request

About

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates

Resources

Contributing

Stars

109 stars

Watchers

20 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

7,762 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation


EnergyWeb
EnergyWeb Origin

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates (EACs). This repository is an entry point to Origin systems. It has a goal of explaining briefly the whole system and providing you with insight and info where to explore next.

🚧 Documentation available at https://energy-web-foundation-origin.readthedocs-hosted.com/en/latest/ 🚧

Table of Contents

Packages

SDK Releases

PackageStableCanaryDescription
@energyweb/origin-device-registry-apinpmnpmGeneric implementation of API working with Origin device registry
@energyweb/origin-device-registry-irec-local-apinpmnpmAPI for local version of I-REC compatible registry
@energyweb/origin-energy-apinpmnpmAPI for Smart meter reads
@energyweb/origin-organization-irec-apinpmnpmAPI for I-REC based organizations
@energyweb/origin-backendnpmnpmExample backend necessary for running Origin
@energyweb/issuernpmnpmEnergy Attribute Certificates Issuer Module
@energyweb/issuer-apinpmnpmNestJS module for interacting with renewable energy certificates
@energyweb/issuer-irec-apinpmnpmNestJS module for interacting with renewable energy certificates with IREC connectivity
@energyweb/exchangenpmnpmA service project hosting order book based exchange
@energyweb/exchange-irecnpmnpmA service project hosting order book based I-REC specific exchange
@energyweb/exchange-corenpmnpmGeneric EACs order book product and matching
@energyweb/exchange-core-irecnpmnpmAn IREC based EACs product and matching
@energyweb/exchange-io-erc1888npmnpmERC1888 withdwaral/deposit processing for exchange
@energyweb/utils-generalnpmnpmGeneral Utilities
@energyweb/origin-ui-corenpmnpmReact components library for building Origin marketplace user interface
@energyweb/origin-ui-localizationnpmnpmLocalization library for building Origin marketplace user interface
@energyweb/origin-ui-themenpmnpmMaterial-UI theme configuration and styling utilities
@energyweb/origin-ui-utilsnpmnpmUI general utilities

Applications, Infrastructure and Demo

PackageDescription
@energyweb/origin-backend-irec-appBootstrap project for Origin API that uses I-REC API connection
@energyweb/origin-uiRoot of UI for Origin
@energyweb/migrations-irecDeployment and configuration utilities

Packages types

Origin monorepo produce 3 types of the packages that are meant to be used in different use-cases:

Stable

Stable Origin SDK packages are created during release branch build.

Install using yarn add @energyweb/{package}

Canary

Canary packages are created during master branch builds. Canary reflects current state of the master branch, they should be a working versions considers as alpha

Install using yarn add @energyweb/{package}@canary

Preview

Preview packages are built on a special preview branch, this is mostly used as interal tool for tests, demos, discussions.

Install using yarn add @energyweb/{package}@preview

Preparation

  1. Make sure you are using Node 14.x.x
  2. Make sure have latest @microsoft/rush package manager installed.
npm install -g @microsoft/rush
  1. Make sure you have Java runtime installed
  2. Install Postgres 12.x+ and create a new database named origin.

We recommend using Docker based setup as follows (requires psql command line tool installed):

docker pull postgres
docker run --name origin-postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=origin -d -p 5432:5432 postgres
  1. Make sure you have created a .env file in the root of the monorepo and that all necessary variables are set. Use .env.example as an example of how the .env file should look.

  2. Create InfluxDB to store smart meter readings

docker run --rm --env-file ./.env -v $PWD/influxdb-local:/var/lib/influxdb influxdb:1.8 /init-influxdb.sh

Run the InfluxDB instance

docker run --name energy-influxdb --env-file ./.env -d -p 8086:8086 -v $PWD/influxdb-local:/var/lib/influxdb -v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro influxdb:1.8
  1. For custom DB credentials, ports, db name etc refer to https://github.com/energywebfoundation/origin/tree/master/packages/apps/origin-backend-irec-app#development

Installation

rush update

Build

rush build

Test

rush test:e2e

Run demo

After you have the .env file created, installed dependencies (rush install) and build completed (rush build) run the following command:

rush run:origin

Visit the UI at: http://localhost:3000.

Heroku environment provisioning

For fast deployment to Heroku you can run the available script provision-heroku-origin

PREFIX=<name> STAGE=<stage> TEAM=<team> ./provision-heroku-origin.sh

Naming convention is for apps:

${PREFIX}-origin-ui-${STAGE}
${PREFIX}-origin-api-${STAGE}

For e.g in order to create ptt-origin-ui-stable run the script with:

PREFIX=ptt STAGE=stable TEAM=<team> ./provision-heroku-origin.sh

Note: This script assumes that Heroku CLI tool is installed and your are logged in https://devcenter.heroku.com/articles/heroku-cli

Energy Attribute Certificates

Energy Attribute Certificates, or EACs, is an official document which guarantees that produced energy comes from a renewable source. There are different standards that regulate how data is stored and validated. In Europe, this document is called Guarantee of Origin (GO), in North America, it's called Renewable Energy Certificate (REC), and in parts of Asia, Africa, the Middle East, and Latin America governing standard is International REC (I-REC). Standards do vary, but they all share the same core principles.

The main purpose of EACs is to act as an accounting vehicle to prove that consumed energy came from a renewable source. EACs are mostly used to address sustainability reports regarding Scope 2 emissions.

Deployment

For deployment instructions please refer to Deployment wiki page.

Contribution guidelines

If you want to contribute to Origin, be sure to follow classic open source contribution guidelines (described below).

  1. Commiting a change
    • Fork the repository
    • Make a change to repo code
    • Commit the change to the master branch
  2. Pull request

About

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates

Resources

Contributing

Stars

109 stars

Watchers

20 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

7,762 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation


EnergyWeb
EnergyWeb Origin

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates (EACs). This repository is an entry point to Origin systems. It has a goal of explaining briefly the whole system and providing you with insight and info where to explore next.

🚧 Documentation available at https://energy-web-foundation-origin.readthedocs-hosted.com/en/latest/ 🚧

Table of Contents

Packages

SDK Releases

PackageStableCanaryDescription
@energyweb/origin-device-registry-apinpmnpmGeneric implementation of API working with Origin device registry
@energyweb/origin-device-registry-irec-local-apinpmnpmAPI for local version of I-REC compatible registry
@energyweb/origin-energy-apinpmnpmAPI for Smart meter reads
@energyweb/origin-organization-irec-apinpmnpmAPI for I-REC based organizations
@energyweb/origin-backendnpmnpmExample backend necessary for running Origin
@energyweb/issuernpmnpmEnergy Attribute Certificates Issuer Module
@energyweb/issuer-apinpmnpmNestJS module for interacting with renewable energy certificates
@energyweb/issuer-irec-apinpmnpmNestJS module for interacting with renewable energy certificates with IREC connectivity
@energyweb/exchangenpmnpmA service project hosting order book based exchange
@energyweb/exchange-irecnpmnpmA service project hosting order book based I-REC specific exchange
@energyweb/exchange-corenpmnpmGeneric EACs order book product and matching
@energyweb/exchange-core-irecnpmnpmAn IREC based EACs product and matching
@energyweb/exchange-io-erc1888npmnpmERC1888 withdwaral/deposit processing for exchange
@energyweb/utils-generalnpmnpmGeneral Utilities
@energyweb/origin-ui-corenpmnpmReact components library for building Origin marketplace user interface
@energyweb/origin-ui-localizationnpmnpmLocalization library for building Origin marketplace user interface
@energyweb/origin-ui-themenpmnpmMaterial-UI theme configuration and styling utilities
@energyweb/origin-ui-utilsnpmnpmUI general utilities

Applications, Infrastructure and Demo

PackageDescription
@energyweb/origin-backend-irec-appBootstrap project for Origin API that uses I-REC API connection
@energyweb/origin-uiRoot of UI for Origin
@energyweb/migrations-irecDeployment and configuration utilities

Packages types

Origin monorepo produce 3 types of the packages that are meant to be used in different use-cases:

Stable

Stable Origin SDK packages are created during release branch build.

Install using yarn add @energyweb/{package}

Canary

Canary packages are created during master branch builds. Canary reflects current state of the master branch, they should be a working versions considers as alpha

Install using yarn add @energyweb/{package}@canary

Preview

Preview packages are built on a special preview branch, this is mostly used as interal tool for tests, demos, discussions.

Install using yarn add @energyweb/{package}@preview

Preparation

  1. Make sure you are using Node 14.x.x
  2. Make sure have latest @microsoft/rush package manager installed.
npm install -g @microsoft/rush
  1. Make sure you have Java runtime installed
  2. Install Postgres 12.x+ and create a new database named origin.

We recommend using Docker based setup as follows (requires psql command line tool installed):

docker pull postgres
docker run --name origin-postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=origin -d -p 5432:5432 postgres
  1. Make sure you have created a .env file in the root of the monorepo and that all necessary variables are set. Use .env.example as an example of how the .env file should look.

  2. Create InfluxDB to store smart meter readings

docker run --rm --env-file ./.env -v $PWD/influxdb-local:/var/lib/influxdb influxdb:1.8 /init-influxdb.sh

Run the InfluxDB instance

docker run --name energy-influxdb --env-file ./.env -d -p 8086:8086 -v $PWD/influxdb-local:/var/lib/influxdb -v $PWD/influxdb.conf:/etc/influxdb/influxdb.conf:ro influxdb:1.8
  1. For custom DB credentials, ports, db name etc refer to https://github.com/energywebfoundation/origin/tree/master/packages/apps/origin-backend-irec-app#development

Installation

rush update

Build

rush build

Test

rush test:e2e

Run demo

After you have the .env file created, installed dependencies (rush install) and build completed (rush build) run the following command:

rush run:origin

Visit the UI at: http://localhost:3000.

Heroku environment provisioning

For fast deployment to Heroku you can run the available script provision-heroku-origin

PREFIX=<name> STAGE=<stage> TEAM=<team> ./provision-heroku-origin.sh

Naming convention is for apps:

${PREFIX}-origin-ui-${STAGE}
${PREFIX}-origin-api-${STAGE}

For e.g in order to create ptt-origin-ui-stable run the script with:

PREFIX=ptt STAGE=stable TEAM=<team> ./provision-heroku-origin.sh

Note: This script assumes that Heroku CLI tool is installed and your are logged in https://devcenter.heroku.com/articles/heroku-cli

Energy Attribute Certificates

Energy Attribute Certificates, or EACs, is an official document which guarantees that produced energy comes from a renewable source. There are different standards that regulate how data is stored and validated. In Europe, this document is called Guarantee of Origin (GO), in North America, it's called Renewable Energy Certificate (REC), and in parts of Asia, Africa, the Middle East, and Latin America governing standard is International REC (I-REC). Standards do vary, but they all share the same core principles.

The main purpose of EACs is to act as an accounting vehicle to prove that consumed energy came from a renewable source. EACs are mostly used to address sustainability reports regarding Scope 2 emissions.

Deployment

For deployment instructions please refer to Deployment wiki page.

Contribution guidelines

If you want to contribute to Origin, be sure to follow classic open source contribution guidelines (described below).

  1. Commiting a change
    • Fork the repository
    • Make a change to repo code
    • Commit the change to the master branch
  2. Pull request

About

Origin is a set of toolkits that together provide a system for issuance and management of Energy Attribute Certificates

Resources

Contributing

Stars

109 stars

Watchers

20 watching

Forks

Releases

Packages

Used by

Contributors

Languages