bioenergy.org

A site dedicated to creating FAIR datasets to share across bioenergy research centers and to the global research community.
https://github.com/bioenergy-research-centers/bioenergy.org

Category: Renewable Energy
Sub Category: Bioenergy

Keywords from Contributors

ontology

Last synced: about 18 hours ago
JSON representation

Repository metadata

README.md

bioenergy.org

A site dedicated to creating FAIR datasets to share across bioenergy research centers (BRCs) and to the global research community.

Resources

Points of contact at each BRC

Tech contacts

  • Hector Plahar
  • Nick Thrower
  • Clint Cecil

MVP Product Definition

From discussion on 01/30/2024:

  • In scope
    • Build a basic website on a server running at JBEI using a tech stack that is "modern" but also one one that is new to all of the technical personnel working on it.
    • Use agreed upon processes, defined in the contribution guide.
    • Include all tech components needed to be a database-driven site.
    • Secrets management for database connectivity on the server.
  • Out of scope
    • Automation (CI/CD pipelines).
    • Authentication and authorization within the application.
    • Admin interface.
    • Data import capabilities.
    • Access to the server to deploy outside of JBEI users.
  • Tech stack
    • VM with nginx and Docker installed.
    • Postgres database.
    • Vue.js, node.js, express as language stack.
    • Container-first approach for all components.

Development

Prerequisites:

  • Docker
  • Docker Compose
  • Node.js (version in .nvmrc), recommend using a version manager like nvm or asdf
  • Postman is useful for testing the api.

The application is a monorepo with two main components. The client is a Vue.js application and the API is an Express application.

Running a postgres container

The following command will run a postgres container with the password mysecretpassword and expose the database on port 6432.

docker run --name postgres -e POSTGRES_PASSWORD=mysecretpassword -d -p 6432:5432 postgres

Running the application

  • Copy the .env.sample file to .env and fill in the environment variables. These can also be set as environment variables on your system.
  • Docker Compose:
    • To run the application in production mode, run docker-compose up in the root directory of the project. This will start the nginx server for the client, the express server for the API, and the Postgres database.
    • To run the application in development mode, run docker compose -f docker-compose.dev.yml up --build --watch. This will start the client and API in development mode with hot reloading.
    • You can run docker-compose down to stop the application and destroy the containers and volumes.
    • Running docker-compose up --build will rebuild the containers and restart the application.

Import BRC Data Feeds

  • run docker compose run api node scripts/import_datafeeds.js from the root folder of the project.
  • To redirect validation errors to a file, run docker compose run api node scripts/import_datafeeds.js 2>&1 > import_datafeeds.txt

Resources Used to Build This Application

BRC Data End Points

Validating Data

Validating data against the BRC schema can be done with the LinkML framework.

Note for Windows users: To run the validator script on Windows:

This process, including installing LinkML, can be done with the validation script in this repo:

./validate.sh

Alternatively, the process may be done manually:

  • Install the LinkML Python package as detailed here.
  • Retrieve a local copy of the data collection in JSON format. For example, run wget https://bioenergy.org/JBEI/jbei.json
  • Retrieve the most recent version of the schema in YAML format. The schema is here: https://github.com/bioenergy-research-centers/brc-schema/blob/main/src/brc_schema/schema/brc_schema.yaml
  • Run the following linkml command: linkml validate --schema brc_schema.yaml -C Dataset <datafile>, replacing <datafile> with the path to your data in JSON.
    • For example, a fully valid jbei.json will yield the following result:
      $ linkml validate --schema brc_schema.yaml -C Dataset jbei.json
      No issues found
      
    • Places where the data does not comply with the schema will be indicated like below:
      $ linkml validate --schema src/brc_schema/schema/brc_schema.yaml -C Dataset jbei-bad.json 
      [ERROR] [jbei-bad.json/0] Additional properties are not allowed ('DATE' was unexpected) in /
      [ERROR] [jbei-bad.json/0] 'date' is a required property in /
      [ERROR] [jbei-bad.json/1] 'yes' is not of type 'boolean', 'null' in /creator/0/primaryContact
      [ERROR] [jbei-bad.json/8] Additional properties are not allowed ('BRC' was unexpected) in /
      [ERROR] [jbei-bad.json/8] 'brc' is a required property in /
      

Copyright Notice

InterBRC Data Products Portal Copyright (c) 2025, The Regents of the University of California, through Lawrence Berkeley National Laboratory, and UT-Battelle LLC, through Oak Ridge National Laboratory (both subject to receipt of any required approvals from the U.S. Dept. of Energy), University of Wisconsin - Madison, University of Illinois Urbana - Champaign, and Michigan State University. All rights reserved.

If you have questions about your rights to use or distribute this software,
please contact Berkeley Lab's Intellectual Property Office at
[email protected].

NOTICE. This Software was developed under funding from the U.S. Department
of Energy and the U.S. Government consequently retains certain rights. As
such, the U.S. Government has been granted for itself and others acting on
its behalf a paid-up, nonexclusive, irrevocable, worldwide license in the
Software to reproduce, distribute copies to the public, prepare derivative
works, and perform publicly and display publicly, and to permit others to do so.


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 5 days ago

Total Commits: 67
Total Committers: 11
Avg Commits per committer: 6.091
Development Distribution Score (DDS): 0.776

Commits in past year: 40
Committers in past year: 6
Avg Commits per committer in past year: 6.667
Development Distribution Score (DDS) in past year: 0.65

Name Email Commits
Nick Thrower t****n@m****u 15
Hector Plahar h****r 11
Clint Cecil c****l@w****u 11
Nathan Hillson n****n@l****v 9
Chuck Parker c****r 8
Harry Caufield j****d@g****m 5
mkulawik 1****k 2
StantonMartin 6****n 2
Mark A. Miller M****M@l****v 2
Leslie Stoecker l****r@i****u 1
Dirk Norman (GLBRC) 1****c 1

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 172
Total pull requests: 104
Average time to close issues: about 1 month
Average time to close pull requests: 9 days
Total issue authors: 10
Total pull request authors: 5
Average comments per issue: 1.63
Average comments per pull request: 0.77
Merged pull request: 104
Bot issues: 0
Bot pull requests: 0

Past year issues: 172
Past year pull requests: 104
Past year average time to close issues: about 1 month
Past year average time to close pull requests: 9 days
Past year issue authors: 10
Past year pull request authors: 5
Past year average comments per issue: 1.63
Past year average comments per pull request: 0.77
Past year merged pull request: 104
Past year bot issues: 0
Past year bot pull requests: 0

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/bioenergy-research-centers/bioenergy.org

Top Issue Authors

  • ct-parker (54)
  • throwern (40)
  • caufieldjh (33)
  • hplahar (28)
  • dnorman-glbrc (6)
  • StantonMartin (3)
  • njhillson (3)
  • mkulawik (3)
  • lensor (1)
  • franflame (1)

Top Pull Request Authors

  • throwern (40)
  • hplahar (27)
  • ct-parker (22)
  • caufieldjh (10)
  • mkulawik (5)

Top Issue Labels

  • enhancement (20)
  • bug (9)
  • invalid (3)

Top Pull Request Labels

  • enhancement (19)
  • documentation (6)
  • bug (3)

Dependencies

.github/workflows/qc.yaml actions
  • actions/checkout v3.0.2 composite
  • actions/setup-node v2 composite
api/Dockerfile docker
  • node 20 build
client/Dockerfile docker
  • nginx stable-alpine build
  • node 20 build
docker-compose.dev.yml docker
docker-compose.yml docker
api/package.json npm
  • @faker-js/faker ^8.4.1 development
  • @octokit/rest ^21.1.0
  • ajv ^8.17.1
  • ajv-formats ^3.0.1
  • axios ^1.7.7
  • body-parser ^1.20.2
  • cors ^2.8.5
  • dotenv ^16.4.5
  • express ^4.18.2
  • nodemon ^3.1.7
  • pg ^8.11.3
  • pg-hstore ^2.3.4
  • sanitize-html ^2.14.0
  • sequelize ^6.37.0
  • swagger-jsdoc ^6.2.8
  • swagger-ui-express ^5.0.0
  • sync-fetch ^0.5.2
client/package.json npm
  • @rushstack/eslint-patch ^1.3.3 development
  • @vitejs/plugin-vue ^5.0.3 development
  • @vue/eslint-config-prettier ^8.0.0 development
  • @vue/test-utils ^2.4.4 development
  • cypress ^13.6.3 development
  • eslint ^8.49.0 development
  • eslint-plugin-cypress ^2.15.1 development
  • eslint-plugin-vue ^9.17.0 development
  • jsdom ^24.0.0 development
  • prettier ^3.0.3 development
  • start-server-and-test ^2.0.3 development
  • vite ^5.0.11 development
  • vitest ^1.2.2 development
  • @popperjs/core ^2.11.8
  • axios ^1.6.7
  • bootstrap ^5.3.2
  • bootstrap-icons ^1.11.3
  • dotenv ^16.4.5
  • jquery ^3.7.1
  • pinia ^2.2.4
  • pinia-plugin-persistedstate ^4.1.2
  • vue ^3.4.15
  • vue-router ^4.2.5
package.json npm
  • mvp file:api

Score: 5.488937726156687