Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/periodo/periodo-client

Client to browse and edit PeriodO data
https://github.com/periodo/periodo-client

gazetteer indexeddb javascript json-ld linked-data periodization react

Last synced: 5 days ago
JSON representation

Client to browse and edit PeriodO data

Awesome Lists containing this project

README

        

# PeriodO Client

A Web browser application for browsing and editing [PeriodO](http://perio.do/) data.

Compatible with all browsers that support ES2017 and IndexedDB. Safari has known issues complying with the latter, and we cannot guarantee that PeriodO supports it (as of March 2017).

[![client tests status](https://github.com/periodo/periodo-client/actions/workflows/run-tests.yml/badge.svg)](https://github.com/periodo/periodo-client/actions/workflows/run-tests.yml)
[![end-to-end tests status](https://github.com/periodo/periodo-client/actions/workflows/run-end-to-end-tests.yml/badge.svg)](https://github.com/periodo/periodo-client/actions/workflows/run-end-to-end-tests.yml)

# Building

To build a standalone version of the client which can be run from a static web directory, run `make production`.

Run `make test` to run all tests. Because we use recent JavaScript features like `async`/`await` and object rest/spread, you must have Node 11+ installed.

# Layout of this project

This is an umbrella project for several distinct sub-projects ("modules"). Each of these smaller units are npm packages found in the `modules` folder. We manage dependencies between them with a tool called [Lerna](https://lernajs.io/). Look in those folders for documentation on each individal module.

# Development

Because browsers do not support IndexedDB for pages served from local file systems, during development, you will need to run a process that will serve the root directory over HTTP.

Once you have set up a server to serve the root directory, run `make watch` to rebuild the site during development. This will build the file `periodo-client.js` and rebuild it upon any changes to source files.

## Publishing a new version

To publish a new version, run the following commands:

```
npm version patch
make publish
```

Replace `patch` with the type of release you want to make, according to [the docs for npm-version](https://docs.npmjs.com/cli/version) and the kind of change the new version is according to [semvar](https://docs.npmjs.com/misc/semver).

## Committing `package-lock.json`

Changes to `package-lock.json` should only ever be in a commit by themselves. Do not include changes to `package-lock.json` with commits that change other files.