Skip to content

MaastrichtU-IDS/projects

Repository files navigation

Deploy website to GitHub Pages Get Projects data from GitHub GraphQL API CodeQL analysis

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

Add your project repository ✔️

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.

Start the website 🏗️

Requirements: npm and yarn installed.

Go to the website folder (every command related to the website will be done from this folder):

cd website

Run in development 🚧

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

Or run in production 🛩️

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

Or run with Docker 🐳

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

Get projects data from GitHub

A workflow runs everyday via GitHub Actions at 03:00am and 13:00pm to get Projects metadata from GitHub GraphQL API:

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.

Generate HTML pages for datasets

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.

Contribute 🤝

Contributions are welcome! See the guidelines to contribute.

Releases

No releases published

Contributors 4

  •  
  •  
  •  
  •