Coscine Client is a browser-based React application for working with RWTH Coscine resources. It helps users load Coscine projects, select resources, fill SHACL-based metadata forms, upload files with metadata, inspect uploaded content, and test workflows locally before using a production Coscine token.
- Connects to the production Coscine API through a local proxy.
- Loads projects, resources, files, and application profiles available to a Coscine API token.
- Renders SHACL metadata forms with
@ulb-darmstadt/shacl-form. - Serializes completed metadata as Turtle before upload.
- Uploads file content and metadata to a selected Coscine path.
- Provides a search and preview view for resource files.
- Supports English and German interface text.
- Includes a test environment for local workflows without contacting Coscine.
- Lets users create test resources from a local SHACL file or from AIMS metadata profiles.
- Can remember selected metadata field values in browser storage.
The production workflow loads resources from Coscine, displays files in the selected resource, renders the resource metadata form, and previews downloadable files where possible.
The test environment runs in the browser with local test resources and in-memory uploads. It is useful for checking SHACL forms, upload paths, metadata serialization, and form-memory behavior without sending data to Coscine.
- Node.js 20 or newer.
- npm.
- A Coscine API token for production usage.
The test environment does not require an API token.
npm installStart the Vite development server:
npm run devThe application is served at:
http://127.0.0.1:5173
During development, Vite proxies Coscine API requests through:
/coscine-api
This keeps browser CORS handling out of the frontend code.
Build the static frontend:
npm run buildServe the built app with the included Node.js server:
npm run serveThe server listens on:
http://127.0.0.1:4173
Set PORT to use a different port:
PORT=8080 npm run serve- Open Coscine Client in a browser.
- Choose
Production environmentorTest environment. - For production, enter a Coscine API token and load resources.
- Select a resource.
- Choose or create the metadata profile/resource needed for the upload.
- Load a local file and set the Coscine target path.
- Fill the required metadata form.
- Upload the file and serialized metadata.
API tokens are entered in the browser and sent as Authorization headers only to proxied Coscine API requests. Do not commit tokens or store them in source files.
The test environment is built for local experimentation. It provides sample projects, resources, application profiles, SHACL form loading, metadata serialization, file upload handling, and a local resource view. Test uploads are kept in browser memory for the current session.
In test mode, users can create resources from:
- A local SHACL form file.
- A metadata profile selected through AIMS search.
npm run devstarts the Vite development server.npm run buildcreates the production build indist/.npm run previewpreviews the Vite build locally.npm run serveservesdist/with the included Node.js server and Coscine proxy.
.
├── index.html
├── Picture1.png
├── Picture2.png
├── server.js
├── src
│ ├── aimsApi.js
│ ├── assets
│ │ ├── aims_title_FHD_transparent_header.png
│ │ └── coscine_rgb.svg
│ ├── coscineApi.js
│ ├── main.jsx
│ └── styles.css
└── vite.config.js
- React 19.
- Vite 6.
- N3 for Turtle parsing and serialization.
@ulb-darmstadt/shacl-formfor SHACL form rendering.- A small Node.js server for serving production builds and proxying Coscine API requests.
This project is licensed under the MIT License. See LICENSE.

