This project is a part of Software Engineering Lab Coursework and is not intended to be used for any medical purposes. This project is solely developed for academic purposes, and it does not hold any medical liability. The project team does not take any responsibility for any damage or loss resulting from the use of this project for medical purposes.
Demo Video : https://youtu.be/0kyaSlfcbNA
White Paper : Download Here
@article{Ghosh2023,
author = "Satyajit Ghosh and Mousumi Dutta",
title = "{Indriya: Building a Secure and Transparent Organ Donation System with Hyperledger Fabric}",
year = "2023",
month = "3",
url = "https://www.techrxiv.org/articles/preprint/Indriya_Building_a_Secure_and_Transparent_Organ_Donation_System_with_Hyperledger_Fabric/22225999",
doi = "10.36227/techrxiv.22225999.v1"
}
Indriya is a distributed online system that automates the organ donation and transplantation process and increases speed, transparency, and security. It provides various interfaces for different stakeholders like doctors, donors and recipient. It aims to automate the match-making process between donor and recipient. This distributed blockchain-based organ donation and transplantation system stores the details of the patient or organ receiver and the details of the organ donor. The patient details include name, age, gender, address, contact information, blood group, organ required, and previous medical history. The same information is also taken from the organ donor. This information is uploaded by the respective hospitals or authorized doctors. The match-making process checks if the organ required type matches the donating organ. Next, it also checks if the blood group and gender of the receiver are matching with the donor. If everything matches, then the system informs the patient about the match.
- Node v10.19.0
- NPM v6.14.4
- Docker version 20.10.12, build 20.10.12-0ubuntu2~20.04.1
- Git 2.25.1
- cURL 7.68.0
( https://hyperledger-fabric.readthedocs.io/ml/latest/prereqs.html )
Install Command
sudo apt-get update
sudo apt-get install git curl docker docker-compose
sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker
Install nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.2/install.sh | bash
then install the node 10.19
nvm install 10.19
after that use that version using -
nvm use 10.19
then create symbolic links to run nvm node with root
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/node" "/usr/local/bin/node"
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/npm" "/usr/local/bin/npm"
If you don't use this node version, then your npm install
will be stucked.
curl -sSL https://bit.ly/2ysbOFE | bash -s -- 2.2.2 1.4.9
(https://hyperledger-fabric.readthedocs.io/ml/latest/install.html)
git clone git@github.com:MousumiDutta2000/Indriya.git
./start.sh
Run this for one time to install requirements
npm install
Next run the following commands to register admin and user in blockchain
node enrollAdmin.js
node registerUser.js
Make a .env file inside client/javascript/
. It should look like below sample -
# .env file
ADMIN_ID='your_admin_id'
ADMIN_KEY='your_admin_password'
HOS_ID='your_hos_id'
HOS_KEY='your_hos_password'
To start the server use -
npm start
To clear the network use -
sudo ./network.sh down
from test-network folder.
Then to make sure all the docker containers are clear additionally you can use -
docker rm $(docker ps -a -q) -f
To start the network again after system shutdown , you need to re-run the docker containers
docker start $(docker ps -a -q)
If you clean the network , then again you need to delete the
admin.id
and appUser.id
from the /client/javascript/wallet/
and again generate them using enrollAdmin.js
and registerUser.js
sudo apt-get install certbot
sudo certbot certonly --standalone
then use invokeprod.js
instead of invoke.js
Note: Change the domain name in the invokeprod.js
as per your setup
Run as
sudo node invokeprod.js
Satyajit Ghosh |
Mousumi Dutta |
This documentation is written by Satyajit Ghosh (satyajit@satyajit.co.in & satyajit.ghosh@stu.adamasuniversity.ac.in)
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.