Skip to content
Snippets Groups Projects
README.md 4.29 KiB
Newer Older
esikkala's avatar
esikkala committed
# Sampo-UI
esikkala's avatar
esikkala committed

esikkala's avatar
esikkala committed
A framework for building user interfaces for semantic portals. The following portals use this repository as a base:
esikkala's avatar
esikkala committed

esikkala's avatar
esikkala committed
* [NameSampo](https://github.com/SemanticComputing/nimisampo.fi)
esikkala's avatar
esikkala committed
* [Mapping Manuscript Migrations](https://github.com/mapping-manuscript-migrations/mmm-web-app)
esikkala's avatar
esikkala committed
* [WarVictimSampo 1914–1922](https://github.com/SemanticComputing/sotasurmat-web-app)
esikkala's avatar
esikkala committed
* [LawSampo](https://github.com/SemanticComputing/lawsampo-web-app)
* [AcademySampo](https://github.com/SemanticComputing/academysampo-web-app)
* [FindSampo](https://github.com/SemanticComputing/findsampo-web-app) 
esikkala's avatar
esikkala committed
* [HistorySampo](https://github.com/SemanticComputing/historysampo-web-app) 
esikkala's avatar
esikkala committed
* [ParliamentSampo?]
esikkala's avatar
esikkala committed

Sampo-UI framework is being developed by the [Semantic Computing Research Group (SeCo)](https://seco.cs.aalto.fi) at the Aalto University, Finland. See the [research page](https://seco.cs.aalto.fi/tools/sampo-ui) for more information. 
esikkala's avatar
esikkala committed

## Documentation

Sampo-UI's React components are documented [here](https://semanticcomputing.github.io/sampo-ui).
esikkala's avatar
esikkala committed

esikkala's avatar
esikkala committed
## Requirements

esikkala's avatar
esikkala committed
* [Node.js® – a JavaScript runtime built on Chrome's V8 JavaScript engine.](https://nodejs.org/en/) (tested with 10.15.3 LTS)
Esko Ikkala's avatar
Esko Ikkala committed

esikkala's avatar
esikkala committed
* [Nodemon – monitor for any changes in your source and automatically restart your server](https://nodemon.io/)
esikkala's avatar
esikkala committed

esikkala's avatar
esikkala committed
If your home directory is mounted from a network drive, Node.js should
be installed using Node Version Manager https://github.com/nvm-sh/nvm  

esikkala's avatar
esikkala committed
## Key JavaScript libraries in use

### Client

esikkala's avatar
esikkala committed
* [React – A JavaScript library for building user interfaces](https://reactjs.org/)
* [Material-UI – React components for faster and easier web development.](https://material-ui.com/)
* [Redux – A Predictable State Container for JS Apps](https://redux.js.org/)
esikkala's avatar
esikkala committed
* [React Router](https://reacttraining.com/react-router/web/guides/quick-start)
esikkala's avatar
esikkala committed
* [deck.gl – Large-scale WebGL-powered Data Visualization](https://deck.gl) 
esikkala's avatar
esikkala committed
* [Leaflet – a JavaScript library for interactive maps](https://leafletjs.com/) 
* [Cytoscape – an open source software platform for visualizing complex networks](https://cytoscape.org/)
* [ApexCharts.js – Open Source JavaScript Charts for your website](https://apexcharts.com/)
esikkala's avatar
esikkala committed

### Server

* [Express -- Fast, unopinionated, minimalist web framework for Node.js](https://expressjs.com/)

esikkala's avatar
esikkala committed
## Local development

esikkala's avatar
esikkala committed
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`
esikkala's avatar
esikkala committed

## Deploy with Docker
Esko Ikkala's avatar
Esko Ikkala committed

esikkala's avatar
esikkala committed
### Build
esikkala's avatar
esikkala committed
 `docker build -t sampo-web-app-image .`
Esko Ikkala's avatar
Esko Ikkala committed

esikkala's avatar
esikkala committed
### Run
esikkala's avatar
esikkala committed
 `docker run -d -p 3006:3001 --name sampo-web-app sampo-web-app-image`
Esko Ikkala's avatar
Esko Ikkala committed

 ### Run with password protected endpoint
 `docker run -d -p 3006:3001 -e SPARQL_ENDPOINT_BASIC_AUTH=your_password --name sampo-web-app sampo-web-app-image`

esikkala's avatar
esikkala committed
### Upgrade
Esko Ikkala's avatar
Esko Ikkala committed
```
esikkala's avatar
esikkala committed
docker build -t sampo-web-app-image .
docker stop sampo-web-app
docker rm sampo-web-app
docker run -d -p 3006:3001 --name sampo-web-app sampo-web-app-image
Esko Ikkala's avatar
Esko Ikkala committed
```
esikkala's avatar
esikkala committed

esikkala's avatar
esikkala committed
## Set up a new project using this repository as a base, with the possibility of merging the new commits added to this repository
esikkala's avatar
esikkala committed

esikkala's avatar
esikkala committed
1. Clone this repository:
Esko Ikkala's avatar
Esko Ikkala committed
`git clone git@github.com:SemanticComputing/sampo-ui.git`
esikkala's avatar
esikkala committed

esikkala's avatar
esikkala committed
2. Set up a new GitHub repository. Do not initialize it with anything. It needs to be an empty repository.
esikkala's avatar
esikkala committed
You can name it how you like and you can rename your local folder to match that.

esikkala's avatar
esikkala committed
3. Copy the url of your new repository.
esikkala's avatar
esikkala committed

esikkala's avatar
esikkala committed
4. With terminal go to the folder with the clone of this repository (sampo-web-app).
esikkala's avatar
esikkala committed

esikkala's avatar
esikkala committed
5. Change remote origin from sampo-web-app to your new repository:
esikkala's avatar
esikkala committed
`git remote set-url origin [your new github repo here]`

esikkala's avatar
esikkala committed
6. Check that the origin changed to your new repository:
esikkala's avatar
esikkala committed
`git remote -v`

esikkala's avatar
esikkala committed
7. Push your local clone of sampo-web-app to your new repository:
esikkala's avatar
esikkala committed
`git push`

esikkala's avatar
esikkala committed
8. Set the original repository (sampo-web-app) as the upstream of your new repository:
Esko Ikkala's avatar
Esko Ikkala committed
`git remote add upstream git@github.com:SemanticComputing/sampo-ui.git`
esikkala's avatar
esikkala committed

esikkala's avatar
esikkala committed
9. When new commits appear on the original repository (sampo-web-app) you can fetch them to your new repository.
esikkala's avatar
esikkala committed
The example fetches only master branch:
esikkala's avatar
esikkala committed
`git fetch upstream master`

esikkala's avatar
esikkala committed
10. Go to the branch of your new repository where you want to merge the changes in upstream.
esikkala's avatar
esikkala committed
Merge, solve conflicts and enjoy:
esikkala's avatar
esikkala committed
`git merge upstream/master`