novacrate
Web-based interactive editor for creating, editing and visualizing research object crates.
Science Score: 65.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 2 DOI reference(s) in README -
○Academic publication links
-
○Academic email domains
-
✓Institutional organization owner
Organization kit-data-manager has institutional domain (www.scc.kit.edu) -
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.6%) to scientific vocabulary
Keywords
Repository
Web-based interactive editor for creating, editing and visualizing research object crates.
Basic Info
- Host: GitHub
- Owner: kit-data-manager
- License: apache-2.0
- Language: TypeScript
- Default Branch: main
- Homepage: https://kit-data-manager.github.io/NovaCrate/
- Size: 3.49 MB
Statistics
- Stars: 5
- Watchers: 2
- Forks: 1
- Open Issues: 20
- Releases: 6
Topics
Metadata Files
README.md
📦 NovaCrate - RO-Crate Editor
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
🚀 Features
- ✅ Create, read, and edit RO-Crates
- ✅ Live validation of RO-Crates
- ⚙️ Supports validation of the RO-Crate Specification v1.1 and v1.2
- 🏗️ Easily extensible to validate profiles or specific RO-Crate types (e.g., Workflow crates)
- 🚀 Autofix actions available for some issues
- ✅ Visualize RO-Crates with a graph
- ✅ Focused on usability and modern architecture
- ✅ 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, only the web version is in active development. You can access it directly here.
💡 If you have a special interest in the Desktop App or the Cloud Frontend, please get in contact.
Details on NovaCrate Editions
| Name | Status | Description | Notes | |--------------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------| | Standalone Web App | Active | Standalone Web App without a backend. Stores Crates in the local origin-private file system of the browser | [Access here](https://kit-data-manager.github.io/NovaCrate/) | | Desktop App | Concept | Tauri App with a local backend. Has full access to file system and can make use of arbitrary backend software. | Suitable backend already implemented. | | Cloud Frontend | Concept | NovaCrate 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 `src/lib/backend/CrateServiceAdapter.d.ts` for a list of methods that a backend adapter should implement | ### ℹ️ How To: Custom Backend NovaCrate is a frontend that can be used for any backend that hosts RO-Crates (an appropriate backend adapter must be implemented). This could be anything in the range from a simple file storage to a full REST Service for manipulating crates. See `src/lib/backend/CrateServiceAdapter.d.ts` for a list of methods that a backend adapter should implement. All of these methods can make use of backend resources or be supplemented locally. NovaCrate currently does not include mechanisms for authentication, access control or concurrent access.👨💻 Development
Prerequisites
- Install Node.js >= 20
- Clone the NovaCrate repository
Quickstart
Once the prerequisites are met, run the following code to get started quickly:
bash
npm install
npm run dev
Updating dependencies
This step might be necessary after fetching new commits and on the first installation.
bash
npm install
Development
This command starts NovaCrate in development mode. This enables hot reload but also increases response time.
bash
npm run dev
Open http://localhost:3000 with your browser to see the result.
Building
This command builds NovaCrate in the out folder.
bash
npm run build
The website can then be found in the out folder. Use any web server for viewing. Local viewing:
bash
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
🎓 Thesis
This project was first created as part of a bachelor thesis
ℹ️ Structure
Most of the structure of the editor and many implementation and design details are outlined in the bachelor thesis.
To summarize: This is a Next.js app. Pages are located in /app, components in /components, and anything else is probably in /lib.
📸 Screenshots
Note: These screenshots are out of date.

Owner
- Name: KIT Data Manager
- Login: kit-data-manager
- Kind: organization
- Email: webmaster@datamanger.kit.edu
- Location: Karlsruhe, Germany
- Website: https://www.scc.kit.edu/ueberuns/dem.php
- Repositories: 56
- Profile: https://github.com/kit-data-manager
Generic software and recommendations for FAIR research data management by DEM.
Citation (CITATION.cff)
cff-version: 1.2.0
message: If you use this software, please cite it using these metadata.
type: software
title: novacrate
abstract: Web-based interactive editor for creating, editing and visualising
research object crates.
version: 1.3.0
keywords:
- ro-crate
- ro
- research
- object
- crate
- editor
- graph
- visualize
- nova
- novacrate
- web
- browser
- interactive
- edit
- next
- nextjs
- react
authors:
- orcid: https://orcid.org/0009-0003-2196-9187
family-names: Raquet
given-names: Christopher
email: christopher.raquet@kit.edu
affiliation: Karlsruhe Institute of Technology (KIT)
contact:
- orcid: https://orcid.org/0009-0003-2196-9187
family-names: Raquet
given-names: Christopher
email: christopher.raquet@kit.edu
affiliation: Karlsruhe Institute of Technology (KIT)
license: Apache-2.0
url: https://kit-data-manager.github.io/NovaCrate/
repository-code: https://github.com/kit-data-manager/NovaCrate
CodeMeta (codemeta.json)
{
"@context": [
"https://doi.org/10.5063/schema/codemeta-2.0",
"https://w3id.org/software-iodata",
"https://raw.githubusercontent.com/jantman/repostatus.org/master/badges/latest/ontology.jsonld",
"https://schema.org",
"https://w3id.org/software-types"
],
"@type": "SoftwareSourceCode",
"author": [
{
"@type": "Person",
"givenName": "Christopher",
"familyName": "Raquet",
"email": "christopher.raquet@kit.edu",
"@id": "https://orcid.org/0009-0003-2196-9187",
"identifier": "https://orcid.org/0009-0003-2196-9187",
"affiliation": "Karlsruhe Institute of Technology (KIT)"
}
],
"name": "novacrate",
"description": "Web-based interactive editor for creating, editing and visualising research object crates.",
"version": "1.3.2",
"keywords": [
"ro-crate",
"ro",
"research",
"object",
"crate",
"editor",
"graph",
"visualize",
"nova",
"novacrate",
"web",
"browser",
"interactive",
"edit",
"next",
"nextjs",
"react"
],
"maintainer": [
{
"@type": "Person",
"givenName": "Christopher",
"familyName": "Raquet",
"email": "christopher.raquet@kit.edu",
"@id": "https://orcid.org/0009-0003-2196-9187",
"identifier": "https://orcid.org/0009-0003-2196-9187",
"affiliation": "Karlsruhe Institute of Technology (KIT)"
}
],
"license": [
"https://spdx.org/licenses/Apache-2.0"
],
"softwareHelp": "https://kit-data-manager.github.io/NovaCrate/",
"codeRepository": "https://github.com/kit-data-manager/NovaCrate",
"buildInstructions": "https://github.com/kit-data-manager/NovaCrate",
"url": "https://kit-data-manager.github.io/NovaCrate/"
}
GitHub Events
Total
- Create event: 105
- Release event: 3
- Issues event: 30
- Watch event: 3
- Delete event: 110
- Issue comment event: 92
- Public event: 1
- Push event: 202
- Pull request review comment event: 65
- Pull request review event: 37
- Pull request event: 221
- Fork event: 1
Last Year
- Create event: 105
- Release event: 3
- Issues event: 30
- Watch event: 3
- Delete event: 110
- Issue comment event: 92
- Public event: 1
- Push event: 202
- Pull request review comment event: 65
- Pull request review event: 37
- Pull request event: 221
- Fork event: 1
Dependencies
- actions/checkout v4 composite
- actions/configure-pages v5 composite
- actions/deploy-pages v4 composite
- actions/setup-node v4 composite
- actions/upload-pages-artifact v3 composite
- 367 dependencies
- 758 dependencies
- @types/node ^20 development
- @types/react ^18 development
- @types/react-dom ^18 development
- autoprefixer ^10.0.1 development
- eslint ^8 development
- eslint-config-next 14.2.3 development
- eslint-plugin-immer ^0.0.1 development
- npm-run-all ^4.1.5 development
- postcss ^8 development
- tailwindcss ^3.3.0 development
- ts-loader ^9.5.1 development
- typescript ^5 development
- webpack ^5.91.0 development
- webpack-cli ^5.1.4 development
- @monaco-editor/react ^4.6.0
- @radix-ui/react-alert-dialog ^1.0.5
- @radix-ui/react-checkbox ^1.0.4
- @radix-ui/react-collapsible ^1.0.3
- @radix-ui/react-context-menu ^2.1.5
- @radix-ui/react-dialog ^1.0.5
- @radix-ui/react-dropdown-menu ^2.0.6
- @radix-ui/react-label ^2.0.2
- @radix-ui/react-menubar ^1.0.4
- @radix-ui/react-popover ^1.0.7
- @radix-ui/react-progress ^1.0.3
- @radix-ui/react-radio-group ^1.1.3
- @radix-ui/react-select ^2.0.0
- @radix-ui/react-slot ^1.0.2
- @radix-ui/react-switch ^1.0.3
- @radix-ui/react-tabs ^1.0.4
- @radix-ui/react-tooltip ^1.0.7
- @std/path npm:@jsr/std__path@^1.0.8
- @tauri-apps/api ^1.5.6
- @types/dagre ^0.7.52
- @types/luxon ^3.4.2
- auto-bind ^5.0.1
- auto-zustand-selectors-hook ^2.0.0
- class-variance-authority ^0.7.0
- clsx ^2.1.0
- cmdk ^1.0.0
- dagre ^0.8.5
- happy-opfs file:happy-opfs-1.8.4.tgz
- immer ^10.0.4
- js-file-download ^0.4.12
- jszip ^3.10.1
- lucide-react ^0.363.0
- luxon ^3.4.4
- monaco-editor ^0.48.0
- next 15.2.4
- next-themes ^0.4.4
- prettier ^3.2.5
- pretty-bytes ^6.1.1
- react ^18
- react-dom ^18
- react-markdown ^9.0.1
- react-resizable-panels ^2.0.16
- reactflow ^11.11.3
- sonner ^1.5.0
- swr ^2.2.5
- tailwind-merge ^2.2.2
- tailwindcss-animate ^1.0.7
- use-file-picker ^2.1.2
- usehooks-ts ^3.1.0
- zod ^3.23.8
- zundo ^2.1.0
- zustand ^4.5.2