Ctrl K

NovaCrate

Web-based interactive editor for creating, editing and visualizing research object crates.

1
contributor
Get started
806 commitsLast commit ≈ 2 weeks ago12 stars2 forks

Cite this software

Description

📦 NovaCrate - RO-Crate Editor

DOI Build and Push Docker Image Playwright Tests Node.js CI

Web-based fully-featured interactive editor for creating, editing, and visualizing research object crates. Built for inspecting, validating, and manipulating RO-Crates, allowing you to get a deeper understanding of its content and structure.

NovaCrate is in active development; we welcome feedback, feature requests, and bug reports on the issues page.

▶️ Open NovaCrate

All data is stored in your browser's Origin private file system (OPFS). It will never leave your browser nor your device. No data is stored on our servers.

For more information, see our privacy policy.

Documentation on deploying NovaCrate

🚀 Features

  • Create, read, and edit RO-Crates
  • New: Integrated AI Assistant (Optional) to help you create, maintain, and understand RO-Crates
    • ➡️ Use your own subscription from OpenAI, Anthropic, or OpenRouter
    • ➡️ You can also use a custom OpenAI-compatible LLM provider (e.g. Open WebUI)
    • ➡️ The AI Assistant can create, read, update and delete metadata, and it can read plain files in your RO-Crate
  • ✅ Live validation of RO-Crates
  • ✅ Visualize RO-Crates with a graph
  • ✅ RO-Crate context information and property descriptions
  • ✅ Automatic recommendation of fitting entity types and properties
  • ✅ Support for importing and exporting the ELN format
  • ✅ Extensible with custom schemas at runtime
  • ✅ Generate and view an HTML preview file

🎨 Editions

NovaCrate can be used and deployed in multiple different ways. Currently, two editions are available:

💡 If you have a special interest in NovaCrate as a Desktop App or the Cloud Frontend, please get in contact.

NameStatusDescriptionNotes
Standalone Web AppActiveStandalone Web App without a backend. Stores Crates in the local origin-private file system of the browserAccess here
Embedded ModeActiveNovaCrate can be embedded as an IFrame and controlled by its parent page. This allows you to integrate NovaCrate as a RO-Crate inspector and editor in your own applications.Access the IFrame documentation here
Desktop AppConceptTauri App with a local backend. Has full access to file system and can make use of arbitrary backend software.Successful demonstration has been developed in the past, but is no longer maintained. See the lib persistence overview in the row below for details.
Cloud FrontendConceptNovaCrate is a frontend that can be used with any compatible backend solution, for example a cloud based service that hosts RO-Crates. This approach has not been explored yet due to lack of viable backend solutions.See the lib persistence overview image or lib/core/persistence for interfaces that have to be implemented by the backend. Only IPersistenceService and ICrateService are required for a minimal working backend.

ℹ️ How To: Custom Backend

NovaCrate is modular and can be used with any backend solution. See the lib persistence overview image or lib/core/persistence for interfaces that have to be implemented by the backend. To use NovaCrate with your own backend implementation, fork this repository and swap out the backend implementation in the persistence provider.

NovaCrate currently does not include mechanisms for authentication, access control or concurrent access.

🚀 Deploying

Deploying NovaCrate is easy. Go to the Deployment Documentation. If you don't need to customize NovaCrate, then you can just use the Official Instance.

👨‍💻 Development

Prerequisites

  • Install Node.js >= 22
  • Clone the NovaCrate repository

Quickstart

Once the prerequisites are met, run the following code to get started quickly:

npm install
npm run dev

Updating dependencies

This step might be necessary after fetching new commits and on the first installation.

npm install

Development

This command starts NovaCrate in development mode. This enables hot reload but also increases response time.

npm run dev

Open http://localhost:3000 with your browser to see the result.

Building

This command builds NovaCrate in the out folder.

npm run build

The website can then be found in the out folder. Use any web server for viewing. Local viewing:

npx serve@latest out

Testing

NovaCrate ships with end-to-end frontend tests that can be used to verify that the core functionality is working as expected. At the current time, the test coverage is relatively low due to the complexity of UI-based testing.

You can run the tests using:

npm run build && npm run serve
# In a different terminal:
npm run test:e2e

Unit tests can be run without building the app using:

npm run test:unit

On development machines, the entire test suite incorporating E2E tests and unit tests can be run using:

npm run test:dev-all

ℹ️ Documentation

There is limited technical documentation available in the docs folder (WIP).

There is currently no usage documentation available, but we hope that the editor is easy to use and understand nonetheless.

📨 Contact

NovaCrate is being developed at the Data Exploitation Methods Group of the Scientific Computing Center at Karlsruhe Institute of Technology (KIT). Feel free to contact us for any questions or feedback through the contact details available in the codemeta.json file.

Participating organisations

Karlsruhe Institute of Technology (KIT)

Contributors

CR
Christopher Raquet
Karlsruhe Institute of Technology (KIT)

Helmholtz Program-oriented Funding IV