Sampo-UI
A framework for building user interfaces for semantic portals.
The following research prototype portals use this repository as a base:
- NameSampo
- Mapping Manuscript Migrations
- WarVictimSampo 1914–1922
- LawSampo
- AcademySampo
- FindSampo
- HistorySampo
- LetterSampo
- Hellerau
- ParliamentSampo
- 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
-
Node.js® – a JavaScript runtime built on Chrome's V8 JavaScript engine. (versions 12.22.4 - 14.17.4)
-
Nodemon – monitor for any changes in your source and automatically restart your server
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.