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.
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
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 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
andVITE_ALLOWED_PROVIDERS
are both set to*
, then a login is not necessary to access the backend.- This should only be used for demo purposes!
- 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
- ...
PRs accepted.
- Please use the
dev
branch as a basis. Changes fromdev
will be merged intomain
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.
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
MIT © 2024 Verbundzentrale des GBV (VZG)