Skip to content
Snippets Groups Projects
README.md 10.91 KiB

Sampo-UI

A framework for building user interfaces for semantic portals.

The following research prototype portals use this repository as a base:

  1. NameSampo
  2. Mapping Manuscript Migrations
  3. WarVictimSampo 1914–1922
  4. LawSampo
  5. AcademySampo
  6. FindSampo
  7. HistorySampo
  8. LetterSampo
  9. Hellerau
  10. ParliamentSampo
  11. War veteran interviews

An example deployment generated from this repository is published at sampo-ui.demo.seco.cs.aalto.fi. It combines perspectives from the Mapping Manuscript Migrations and NameSampo portals, and can be used for testing and as a starting point for developing new portals.

The Sampo-UI framework is being developed by the Semantic Computing Research Group (SeCo) at the Aalto University, Finland. See the research page for more information.

Design philosophy

Sampo-UI offers a comprehensive "starting base" of a full stack JavaScript web application. Therefore it is not possible to include Sampo-UI as separate component into an existing application. The most convenient way to build a new user interface using Sampo-UI is to read the documentation provided below, fork this repository, and start developing from there.

Requirements

Note for Linux users: if your home directory is mounted from a network drive, using the Node Version Manager for installing Node.js highly recommended.

Installation

Local development

Install the dependencies specified in package.json (this command needs to be run only once, as long as you don't modify the dependencies):

npm install

Run client and server concurrently:

npm run dev

Deploy with Docker

These example commands can be used to deploy the server at http://localhost:3006/ in production mode. Production mode means in this case that the server listens for API requests at URLs beginning with http://localhost:3006/api/v1/... and additionally serves the client (React app) at http://localhost:3006/. The API docs can be found at http://localhost:3006/api-docs/.

Note that in development mode Webpack is used for serving the client, and the server is used only for handling API requests.