# gCube CKAN Metadata Publisher Widget

gCube CKAN metadata publisher widget is a GWT Widget that allows to publish metadata on the D4science Data Catalogue powered by CKAN.

[![License: EUPL-1.2](./images/License-EUPL--1.2-blue.svg)](LICENSE.md)
[![Changelog](./images/Changelog-keep.svg)](CHANGELOG.md)
[![Cite](./images/Cite-CITATION.cff-orange.svg)](CITATION.cff)

## Table of contents

- [Overview](#overview)
- [Built With](#built-with)
- [Documentation](#documentation)
- [Changelog](#changelog)
- [Authors](#authors)
- [How to Cite](#how-to-cite)
- [License](#license)
- [About gCube](#about-gcube)
- [Funding](#funding)

## Overview

The gCube CKAN Metadata Publisher Widget is a web-based component built with the Google Web Toolkit (GWT) designed to streamline the process of publishing and managing metadata within the D4Science Data Catalogue, which is powered by CKAN.

This widget provides a rich user interface for creating, editing, and updating item (publishing objects). It allows users to interactively fill in metadata profiles, select resources directly from their workspace, and manage complex data types, including geospatial information via GeoJSON. As an integral part of the gCube framework, it seamlessly integrates with other gCube components like the Workspace Explorer and the Metadata Profile Form Builder to offer a comprehensive metadata management solution.

### Key Features

- **Interactive Metadata Forms**: User-friendly forms for creating and updating item metadata.
- **Workspace Integration**: Allows users to browse and select files from the gCube Workspace to associate them as resources.
- **Geospatial Data Support**: Includes an interactive map-based widget for selecting and editing geospatial data (e.g., points, lines, polygons) using GeoJSON.
- **Metadata Validation**: Ensures that metadata fields conform to the required formats and constraints before publication.
- **gCat Backend**: Communicates with the gCat service to publish and manage the metadata records.
- **gCube Ecosystem**: Built to work within the gCube and D4Science infrastructures, leveraging a suite of related services.


## Built With

* [OpenJDK](https://openjdk.java.net/) - Java 8
* [Maven](https://maven.apache.org/) - Dependency Management
* [GWT](https://www.gwtproject.org/) -  Google Web Toolkit (GWT) framework

## Documentation

You can find the D4Science Catalogue documentation at [GCat Background Wiki Page](https://wiki.gcube-system.org/GCat_Background)

## Changelog

See [CHANGELOG.md](CHANGELOG.md).

## Authors

* **Francesco Mangiacrapa** ([ORCID](https://orcid.org/0000-0002-6528-664X)) Istituto di Scienza e Tecnologie dell'Informazione (ISTI), Consiglio Nazionale delle Ricerche (CNR), Pisa, Italy
* **Costantino Perciante** ([ORCID](https://orcid.org/0000-0001-6056-8448))

## How to Cite

If you use this software, please cite it using the metadata in [CITATION.cff](CITATION.cff)

## License

This project is licensed under the terms specified in the [LICENSE.md](LICENSE.md) file.

## About gCube

This software is part of the [gCube Framework](https://www.gcube-system.org/): an open-source software toolkit used for building and operating Hybrid Data Infrastructures enabling the dynamic deployment of [Virtual Research Environments](https://en.wikipedia.org/wiki/Virtual_research_environment) by favouring the realisation of reuse oriented policies. The gCube Framework supports the development and operation of the [D4Science Infrastructure](https://www.d4science.org).

## Funding

See [FUNDING.md](FUNDING.md)
