Skip to content

Web service for enriching subject indexing data on the basis of mappings.

License

Notifications You must be signed in to change notification settings

gbv/coli-rich-web

Repository files navigation

coli-rich Web Interface

Status License standard-readme compliant

Web service for enriching subject indexing data on the basis of mappings.

Note: This is currently a preview with no capability to write back into the catalogue.

Table of Contents

Install

Requires Node.js 20+.

git clone https://github.com/gbv/coli-rich-web.git
cd coli-rich-web
npm ci

To run the development server on port 3454:

npm run dev

To run the production server, you need to build the Vue.js frondend first, then start the server:

npm run build
npm run start

Usage

There is an input form to give a PPN from K10plus catalogue.

  • The PPN is looked up via subjects API to get a list of concepts, the record is indexed with (e.g. DDC Numbers, BK Notations...)
  • Each subject is then queried to get mappings from via JSKOS API and corresponding enrichments
  • Enrichments can be selected
  • Writing selected enrichment back to K10plus has not been implemented yet

Configuration

Configuration can be adjusted via a .env file. Variables prefixed with VITE_ can be used in the client as well.

PORT=3454
# Full base URL on which your app will be hosted
BASE_URL=https://coli-conc.gbv.de/coli-rich/app/
# Login Server instance base URL
VITE_LOGIN_SERVER=http://localhost:3004
# Hardcoded list of allowed user URIs that can perform enrichments in the backend
VITE_ALLOWED_USERS=uri1,uri2
# List of allowed provider IDs (works in addition to VITE_ALLOWED_USERS, i.e. if a user either has one of the 
# specified URIs or has one of the specified providers linked, they can perform enrichments in the backend)
VITE_ALLOWED_PROVIDERS=provider1,provider2
# Additional text (HTML) shown instead of prod/dev text
VITE_ADDITIONAL_TEXT=Hello World
# Local file path where submitted enrichments will be temporarily stored
ENRICHMENTS_PATH=./enrichments

There are special cases for allowed users/providers:

  • If VITE_ALLOWED_USERS is set to *, all logged in users have backend access.
    • This should only be used if the configured Login Server is itself restrictive enough.
  • If VITE_ALLOWED_USERS and VITE_ALLOWED_PROVIDERS are both set to *, then a login is not necessary to access the backend.
    • This should only be used for demo purposes!

To-Dos

  • Code cleanup
    • Split App.vue into multiple components
    • Simplify code where necessary
    • Separate configuration
  • Add more examples?
  • Fix concept data for Wikidata, STW, ...
  • Add favicon
  • ...

Maintainers

Contribute

PRs accepted.

  • Please use the dev branch as a basis. Changes from dev will be merged into main only for new releases.
  • Please run the tests before committing.
  • Please do not skip the pre-commit hook when committing your changes.
  • If editing the README, please conform to the standard-readme specification.

Publish

For maintainers only

Please work on the dev branch during development (or better yet, develop in a feature branch and merge into dev when ready).

When a new release is ready (i.e. the features are finished, merged into dev, and all tests succeed), run the included release script (replace "patch" with "minor" or "major" if necessary):

npm run release:patch

This will:

  • Check that we are on dev
  • Make sure dev is up-to-date
  • Run npm version patch (or "minor"/"major")
  • Ask you to confirm the version
  • Push changes to dev
  • Switch to main
  • Merge changes from dev
  • Push main with tags
  • Switch back to dev

License

MIT © 2024 Verbundzentrale des GBV (VZG)

About

Web service for enriching subject indexing data on the basis of mappings.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 3

  •  
  •  
  •