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 ciTo run the development server on port 3454:
npm run devTo run the production server, you need to build the Vue.js frondend first, then start the server:
npm run build
npm run startThere 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/
# Database key
VITE_DBKEY=opac-de-627
# Example PPNs
VITE_EXAMPLES=389598534,1830228498,1646529499
# Login Server instance base URL
VITE_LOGIN_SERVER=http://localhost:3004
# Subjects API to query
VITE_SUBJECTS_API=https://coli-conc.gbv.de/subjects-k10plus
# 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=./enrichmentsThere are special cases for allowed users/providers:
- If
VITE_ALLOWED_USERSis 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_USERSandVITE_ALLOWED_PROVIDERSare 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
devbranch as a basis. Changes fromdevwill be merged intomainonly 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:patchThis will:
- Check that we are on
dev - Make sure
devis 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
mainwith tags - Switch back to
dev
MIT © 2024 Verbundzentrale des GBV (VZG)