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.ttlfiles - Publish datasets using schema.org metadata as JSON-LD in the
datasetsfolder - 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 projectsWe 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 websiteInstall dependencies 📥
yarnWeb app will run on http://localhost:19006
yarn devThe website should reload automatically at each changes to the code 🔃
Upgrade the packages versions in yarn.lock
yarn upgradeThis 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 serveRequires 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-websiteYou 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 upA 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.jsonon themainbranch 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.ttlin 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.ymlworkflow 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=MYKEY000You can create a new GitHub API key (aka. personal access token) at https://github.com/settings/tokens
Install requirements:
pip3 install -r etl/requirements.txtRun script to retrieve IDS projects DOAP metadata using GitHub GraphQL API:
python3 etl/get_doap_projects.pyTry 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.