Access the website: https://maastrichtu-ids.github.io/projects
Website for projects and datasets published at the Institute of Data Science at Maastricht University.
This website allows to:
- Publish and browse IDS projects in a decentralized manner with
doap-project.ttl
files - Publish datasets using schema.org metadata as JSON-LD in the
datasets
folder - Show the latest releases at IDS.
The website is automatically deployed by a GitHub Actions worklow to GitHub Pages.
Informations about the projects and releases are retrieved from their GitHub repository in the MaastrichtU-IDS organization using a GitHub Actions workflow, and stored as a RDF knowledge graph in a triplestore.
If you want to edit the code and propose improvements, start by cloning the repository:
git clone https://github.com/MaastrichtU-IDS/projects
cd projects
We automatically index doap-project.ttl
metadata files from repositories in the MaastrichtU-IDS organization on GitHub. You can easily
For projects in GitHub repositories that are not published under the MaastrichtU-IDS organization can be easily added in the file EXTERNAL_REPOSITORIES.txt
The doap-project.ttl
file at the root of your repository will be indexed the next time the workflow will run.
Requirements: npm and yarn installed.
Go to the website
folder (every command related to the website will be done from this folder):
cd website
Install dependencies 📥
yarn
Web app will run on http://localhost:19006
yarn dev
The website should reload automatically at each changes to the code 🔃
Upgrade the packages versions in yarn.lock
yarn upgrade
This website is automatically deployed by a GitHub Actions worklow to GitHub Pages at https://maastrichtu-ids.github.io/projects
You can build locally in /web-build
folder and serve on http://localhost:5000 📦 for production
yarn build
yarn serve
Requires Docker installed
You can build the website in a Docker image:
docker build -t projects-website .
And run it on http://localhost:5000
docker run -it projects-website
You can also run the website and a Virtuoso triplestore with the docker-compose.yml
file from the root folder (check the docker-compose.yml file to see how we run the Docker image)
docker-compose up
A workflow runs everyday via GitHub Actions at 03:00am and 13:00pm to get Projects metadata from GitHub GraphQL API:
- Update the file
assets/ids_github_data.json
on themain
branch using a Python script. This JSON file is then used to display informations on the IDS projects website, such as the latest releases of the MaastrichtU-IDS organization on GitHub. - Retrieve DOAP files (
doap-project.ttl
in RDF turtle) from MaastrichtU-IDS GitHub repositories using a Python script, then load their RDF data to the SPARQL endpoint https://graphdb.dumontierlab.com/repositories/ids-projects/statements in the graph https://w3id.org/um/ids/projects/graph
Checkout the
get-projects-data.yml
workflow file to see how to run the Python script to retrieve data from the GitHub GraphQL API.
You can find the scripts and requirements in the datasets/doap-github
folder.
Use this command to locally define the GITHUB_APIKEY
environment variable:
export GITHUB_APIKEY=MYKEY000
You can create a new GitHub API key (aka. personal access token) at https://github.com/settings/tokens
Install requirements:
pip3 install -r etl/requirements.txt
Run script to retrieve IDS projects DOAP metadata using GitHub GraphQL API:
python3 etl/get_doap_projects.py
Try out the GitHub GraphQL API here.
At the end of the workflow deploy-website.yml
(in .github/workflows
) we run a python script from kodymoodley/fair-metadata-html-page-generator to generate HTML pages from JSON-LD metadata describing schema:Dataset
following the Schema.org vocabulary.
Contributions are welcome! See the guidelines to contribute.