Science Score: 52.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
    Organization maastrichtu-ids has institutional domain (www.maastrichtuniversity.nl)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.8%) to scientific vocabulary

Scientific Fields

Computer Science Computer Science - 40% confidence
Last synced: 4 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: MaastrichtU-IDS
  • License: other
  • Language: Jupyter Notebook
  • Default Branch: migrate-to-fastapi
  • Size: 80.6 MB
Statistics
  • Stars: 1
  • Watchers: 3
  • Forks: 2
  • Open Issues: 15
  • Releases: 0
Created over 3 years ago · Last pushed 4 months ago
Metadata Files
Readme License Citation

README.md

🤝 License accoUntability and CompliancE (LUCE)

A Blockchain-based data sharing platform for monitoring data license accountability and compliance.

🗺️ Architecture

The architecture of LUCE is shown below.

Architecture

  1. Users:
  • Hospital: represents medical institutions that need to access and input data.
  • Patient: Patients whose data is being managed and exchanged.
  • Institution: Other entities that may need access to the data, possibly for administrative or research purposes.
  1. LUCE Data Exchange Interface:
  • The interface supports different platforms, and it communicates with a backend using a RESTful API, a popular choice for web services.
  1. LUCE Data Exchange modules:
  • Data Exchange: This module is responsible for the transfer of data between parties.
  • Consent: It ensures that data is not exchanged without the consent of the data owner.
  • Privacy: A module dedicated to maintaining privacy.
  • Smart contract: uses blockchain technology to enforce contracts regarding data access and usage.
  1. Storage:
    • On-Chain Storage: Utilizes blockchain technology, storing shared data and meta-data.
    • Off-Chain Storage: Utilizing local storage or cloud storage, to store the raw data and administrative data

🚀 How to launch LUCE

1. Install docker

2. Launch LUCE

Clone the repository:

bash git clone https://github.com/MaastrichtU-IDS/DecentralizedHealthcareBackend cd DecentralizedHealthcareBackend

To launch LUCE, run:

docker compose up

🧩 Technical overview

Each component of the LUCE stack is deployed in a different docker container, defined in docker-compose.yml

Django API

User login and access to the contract is managed by a python Django API

Code in the backend folder. Django settings in backend/src/luce/lucehome/settings.py

Webapp

React-native (expo) JavaScript webapp for users to upload and search for contracts. It uses the Django API

Code in the frontend folder

Zero-Knowledge Proofs

Snarkjs-based server for generating Zero-Knowledge Proofs (ZKPs).

Code in the zkp_service folder

Database

LUCE use PostgresQL to keep user information, you can configure it in Django project settings

Ganache

Ganache is used to deploy an Ethereum blockchain network for LUCE, available through HTTP

ℹ️ How to access LUCE

You can access with LUCE API, or with app

For http request user

  1. Step 1: register
  2. Step 2: login > Once logged in, you can get a token which is necessary for later operation
  3. Step 3: upload data

For more details, please refer to Understanding the Login Related Process

🧑‍💻 Development Manual

For how to maintain the documentation, please refer to: Documentation mantaince

For how to develop in LUCE, please refer to: LUCE development tips

Install development dependencies:

bash pip install hatch uv npm install -g expo-cli

Compile requirements.txt from pyproject.toml:

bash uv pip compile pyproject.toml -o requirements.txt

  1. Start the database and blockchain in docker for development:

bash docker compose -f docker-compose.dev.yml up

  1. Start the backend:

bash cd backend hatch run dev

  1. Start the frontend:

bash cd frontend npm install npm run start

Tips

  1. if you encounter the issue:

brownie.exceptions.ContractNotFound: No contract deployed at 0xDa574613C62f6DB9FFE8dCC5a8b079Ba37e29390,

please go to luce_vm/brownie, remove build/deployment folder in the brownie directory, and then run brownie compile

  1. If you got the response:

{ "error": { "code": 400, "message": "validation error", "status": "ERROR", "details": "luce registry was not deployed" }, "data": {} }

please deploy a LUCERegistry contract in admin/deployRegistry/ endpoint.

Owner

  • Name: Maastricht University IDS
  • Login: MaastrichtU-IDS
  • Kind: organization
  • Email: info-ids@maastrichtuniversity.nl
  • Location: Maastricht, Netherlands

Institute of Data Science at Maastricht University

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
  - given-names: Visara Urovi
    email: v.urovi@maastrichtuniversity.nl
    affiliation: Institute of Data Science, Maastricht University
  - email: vincent.emonet@gmail.com
    given-names: Vincent Emonet
    affiliation: Institute of Data Science, Maastricht University
    orcid: https://orcid.org/0000-0002-1501-1082
  - given-names: Vikas Jaiman
    affiliation: Institute of Data Science, Maastricht University
  - given-names: Kun Li
    affiliation: Institute of Data Science, Maastricht University
  - given-names: Arno Angerer
title: "LUCE: A Blockchain-based data sharing platform for monitoring data license accountability and compliance"
doi: 10.48550/arXiv.2202.11646
repository-code: https://github.com/MaastrichtU-IDS/DecentralizedHealthcareBackend
date-released: 2022-02-23
# url: https://github.com/MaastrichtU-IDS/DecentralizedHealthcareBackend

GitHub Events

Total
  • Push event: 17
Last Year
  • Push event: 17

Issues and Pull Requests

Last synced: 9 months ago

All Time
  • Total issues: 58
  • Total pull requests: 53
  • Average time to close issues: 17 days
  • Average time to close pull requests: 11 minutes
  • Total issue authors: 2
  • Total pull request authors: 2
  • Average comments per issue: 0.6
  • Average comments per pull request: 0.08
  • Merged pull requests: 51
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 0.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • klifish (24)
  • Giacomo-Terragni (7)
Pull Request Authors
  • klifish (29)
  • dongyang-cs (1)
Top Labels
Issue Labels
enhancement (7) documentation (4) maintenance (2) bug (1)
Pull Request Labels

Dependencies

.github/workflows/docker-image.yml actions
  • actions/checkout v3 composite
Dockerfile docker
  • python 3.9 build
docker-compose.yml docker
  • postgres latest
  • trufflesuite/ganache v7.7.3
luce_vm/js/Dockerfile docker
  • node 16 build
luce_vm/js/package-lock.json npm
  • 407 dependencies
luce_vm/js/package.json npm
  • big-integer ^1.6.42
  • circomlib ^2.0.0
  • circomlibjs ^0.1.7
  • ffjavascript ^0.2.50
  • koa ^2.13.0
  • koa-bodyparser 4.4.0
  • koa-router 12.0.0
  • snarkjs ^0.6.0
  • web3 ^1.3.4
luce_vm/luce_django/luce/requirements.txt pypi
  • Django ==2.2
  • Jinja2 ==2.10.1
  • MarkupSafe ==1.1.1
  • Pillow ==9.0.1
  • PyYAML ==5.1.1
  • Pygments ==2.4.2
  • Send2Trash ==1.5.0
  • aiohttp ==3.8.1
  • aiosignal ==1.2.0
  • async-timeout ==4.0.2
  • asynctest ==0.13.0
  • attrdict ==2.0.1
  • attrs ==19.1.0
  • backcall ==0.1.0
  • base58 ==2.1.1
  • bitarray ==1.2.2
  • bleach ==3.1.0
  • certifi ==2019.6.16
  • cffi ==1.15.0
  • chardet ==3.0.4
  • charset-normalizer ==2.0.11
  • cryptography ==36.0.1
  • cycler ==0.11.0
  • cytoolz ==0.11.2
  • decorator ==4.4.0
  • defusedxml ==0.6.0
  • django-cors-headers ==3.11.0
  • django-extensions ==2.2.1
  • django-filter ==21.1
  • djangorestframework ==3.12.4
  • entrypoints ==0.3
  • eth-abi ==1.3.0
  • eth-account ==0.3.0
  • eth-keyfile ==0.5.1
  • eth-keys ==0.2.4
  • eth-rlp ==0.1.2
  • eth-typing ==2.3.0
  • eth-utils ==1.10.0
  • fonttools ==4.29.1
  • frozenlist ==1.3.0
  • hexbytes ==0.2.0
  • idna ==2.8
  • importlib-metadata ==4.10.1
  • ipfshttpclient ==0.8.0a2
  • ipykernel ==5.1.1
  • ipython ==7.6.1
  • ipython-genutils ==0.2.0
  • ipywidgets ==7.5.0
  • jedi ==0.13.3
  • jsonschema ==3.2.0
  • jupyter ==1.0.0
  • jupyter-client ==5.3.1
  • jupyter-console ==6.0.0
  • jupyter-contrib-core ==0.3.3
  • jupyter-contrib-nbextensions ==0.5.1
  • jupyter-core ==4.5.0
  • jupyter-highlight-selected-word ==0.2.0
  • jupyter-latex-envs ==1.4.4
  • jupyter-nbextensions-configurator ==0.4.1
  • kiwisolver ==1.3.2
  • lru-dict ==1.1.6
  • lxml ==4.4.0
  • matplotlib ==3.5.1
  • mistune ==0.8.4
  • multiaddr ==0.0.9
  • multidict ==6.0.2
  • nbconvert ==5.5.0
  • nbformat ==4.4.0
  • netaddr ==0.8.0
  • notebook ==5.7.8
  • numpy ==1.21.5
  • packaging ==21.3
  • pandocfilters ==1.4.2
  • parsimonious ==0.8.1
  • parso ==0.5.0
  • pexpect ==4.7.0
  • pickleshare ==0.7.5
  • prometheus-client ==0.7.1
  • prompt-toolkit ==2.0.9
  • protobuf ==3.19.4
  • psycopg2 *
  • ptyprocess ==0.6.0
  • py-solc-x ==1.1.1
  • pycparser ==2.21
  • pycryptodome ==3.8.2
  • pyparsing ==3.0.7
  • pyrsistent ==0.14.11
  • python-dateutil ==2.8.0
  • pytz ==2019.1
  • pyzmq *
  • qtconsole ==4.5.2
  • requests ==2.22.0
  • rlp ==1.1.0
  • semantic-version ==2.8.5
  • six ==1.12.0
  • sqlparse ==0.3.0
  • terminado ==0.8.2
  • testpath ==0.4.2
  • toolz ==0.10.0
  • tornado ==6.0.3
  • traitlets ==4.3.2
  • typing-extensions ==4.0.1
  • urllib3 ==1.25.3
  • varint ==1.0.2
  • wcwidth ==0.1.7
  • web3 ==4.9.2
  • webencodings ==0.5.1
  • websockets ==6.0
  • widgetsnbextension ==3.5.0
  • yarl ==1.7.2
  • zipp ==3.7.0