Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ If a PR gets very big, split it up into smaller PRs that can be reviewed separat
To reduce the maintenance burden, we aim to minimize the number of external dependencies.
If external dependencies cannot be avoided, prefer well-supported projects with large numbers of contributors.

[pull requests]: https://github.com/FAIRDataTeam/FAIRDataPoint-client-redux/pulls
[pull requests]: https://github.com/FAIRDataTeam/FAIRDataPoint-UI/pulls
42 changes: 21 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,35 @@
# FAIR Data Point client redux
# FAIR Data Point UI

A browser-based client for FAIR Data Point (FDP) administration.
A browser-based user interface for FAIR Data Point (FDP) administration.

> [!NOTE]
> This client replaces the [legacy FDP client], which has been archived.
> FAIRDataPoint-UI replaces the legacy [FAIRDataPoint-client], which will be archived.

<!-- TODO: Change the original client repository status to "Archived" on GitHub -->
<!-- TODO: Change the original FAIRDataPoint-client repository status to "Archived" on GitHub -->

## FAIR Data Point Client
## FAIR Data Point User Interface

The FAIR Data Point (FDP) _client_ provides a web-based user interface that makes it easier for humans to interact with a FAIR Data Point by hiding the interactions with the FDP API.
The client is a JavaScript (TypeScript) application that runs entirely in the browser, without any server-side rendering.
Under the hood, the FDP client uses the JavaScript [Fetch API] to make HTTP requests to a remote FDP API that complies with the [FDP 1.2 specification].
The main goal of the FDP client is to enable basic administration of the FDP, inspection of FDP content, and execution of simple queries.
The FAIR Data Point _User Interface_ (FDP UI) provides a web-based user interface that makes it easier for humans to interact with a FAIR Data Point by hiding the interactions with the FDP API.
The UI is a JavaScript (TypeScript) application that runs entirely in the browser, without any server-side rendering.
Under the hood, the FDP UI uses the JavaScript [Fetch API] to make HTTP requests to a remote FDP API that complies with the [FDP 1.2 specification].
The main goal of the FDP UI is to enable basic administration of the FDP, inspection of FDP content, and execution of simple queries.

> [!NOTE]
> The FDP client was not designed for bulk operations or advanced queries.
> The FDP UI was not designed for bulk operations or advanced queries.
> Those are best performed by direct interaction with the FDP API.

### Quickstart

The FDP client is published as a Docker image ([fairdata/fairdatapoint-client-redux]) and is designed to run in a container.
The FDP UI is published as a Docker image ([fairdata/fairdatapoint-ui]) and is designed to run in a container.
The Docker image is based on the official [Nginx hardened image], configured as a static file server listening on port `8080`.

One way to deploy the client is using [Docker Compose], as follows:
One way to deploy the UI is using [Docker Compose], as follows:

```yaml
# compose.yaml
services:
fdp-client-redux:
image: fairdata/fairdatapoint-client-redux
fdp-ui:
image: fairdata/fairdatapoint-ui
# ...
volumes:
# Override the default runtime config to specify the URL of the FDP API
Expand All @@ -49,7 +49,7 @@ where `my.config.json` is a custom runtime configuration file that defines the p

The custom CSS file and custom logo are both optional.

It is also possible to run the FDP client application from source, but this is only recommended for client development purposes.
It is also possible to run the FDP UI application from source, but this is only recommended for UI development purposes.

### Setting up a development machine

Expand Down Expand Up @@ -88,15 +88,15 @@ Here's how to install project dependencies and run the development server, provi

#### App configuration for development

The browser-based client application needs an API, provided by a FAIR Data Point (FDP), to function properly.
The browser-based UI application needs an API, provided by a FAIR Data Point (FDP), to function properly.
The URL for the primary API endpoint is defined in the [public/config.json] file and defaults to `http://localhost:8080`.

The default configuration is convenient for local development using the `dev/fdp-client-redux` stack from the [FAIRDataTeam/compose] repository.
The default configuration is convenient for local development using the `dev/fdp-ui` stack from the [FAIRDataTeam/compose] repository.
However, it is also possible to override the default [public/config.json] file locally, if desired.
This can be achieved by creating a `public/config.local.json` file.
If such a file exists, it is picked up automatically by the Vite development server.

For example, you could use this to point the client to an actual FDP on the web, as follows:
For example, you could use this to point the UI to an actual FDP on the web, as follows:

```yaml
# public/config.local.json
Expand All @@ -105,9 +105,9 @@ For example, you could use this to point the client to an actual FDP on the web,

Note that the `config.local.json` file is ignored by `git`.

[legacy FDP client]: https://github.com/FAIRDataTeam/FAIRDataPoint-client
[FAIRDataPoint-client]: https://github.com/FAIRDataTeam/FAIRDataPoint-client
[FDP 1.2 specification]: https://specs.fairdatapoint.org
[FAIRDataTeam/compose]: https://github.com/FAIRDataTeam/compose/tree/master/fdp/ephemeral/v1/dev/fdp-client-redux
[FAIRDataTeam/compose]: https://github.com/FAIRDataTeam/compose/tree/master/fdp/ephemeral/v1/dev/fdp-ui
[npm]: https://docs.npmjs.com/cli/v11/commands
[npm clean-install]: https://docs.npmjs.com/cli/v11/commands/npm-ci
[npm install]: https://docs.npmjs.com/cli/v11/commands/npm-install
Expand All @@ -117,7 +117,7 @@ Note that the `config.local.json` file is ignored by `git`.
[vite development server]: https://vite.dev/guide/cli#dev-server
[dotenv]: https://github.com/motdotla/dotenv
[vite docs]: https://vite.dev/guide/env-and-mode#env-files
[fairdata/fairdatapoint-client-redux]: https://hub.docker.com/r/fairdata/fairdatapoint-client-redux
[fairdata/fairdatapoint-ui]: https://hub.docker.com/r/fairdata/fairdatapoint-ui
[Nginx hardened image]: https://hub.docker.com/hardened-images/catalog/dhi/nginx
[Docker Compose]: https://docs.docker.com/compose/
[Fetch API]: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API