We are building a DApp that allows users to store medical records electronically using blockchain. We have used Ethereum and IPFS, which enables storing medical records in a decentralized way, keeping the medical records secure!
The user enters an image of the medical record which gets stored in IPFS. This returns a hash code which is then stored on the Ethereum blockchain.
The purpose of our project is to have decentralised, transferrable and immutable medical records.
The current usage is quite basic, the user logs into their account and can enter a new medical record or view their previous medical records.
Home Page
The home page is an interface that allows the user to login using their credentials.
Upload Page
This page allows the user to upload images of their medical records which can be referred to in the future by medical professionals.
-
Install Truffle Framework and Ganache (gaphical version) globally.
npm install -g truffle
Note: The graphical version of Ganache seems to be more stable on Mac whereas Ganache CLI works better on Ubuntu.
-
Run the development blockchain. On Ganache, click on Quick Ethereum to enable. You should see a similar page activate --
-
Open another terminal, clone this repo and install its dependencies.
git clone https://github.com/deepalisingh11/felicity.git cd felicity npm install
Note: If you get an error on install, that's okay. It should still work as long it shows installed packages message in the end.
-
Compile, migrate, and test the smart contracts.
./node_modules/.bin/truffle compile ./node_modules/.bin/truffle migrate ./node_modules/.bin/truffle test
-
Start the application
npm run start
-
Navigate to http://localhost:3000/ in your browser.
-
Remember to connect MetaMask to one of your local Ganache Ethereum accounts.
- Create and connect to a custom RPC network using the Ganache RPC server (currently
http://127.0.0.1:7545
), then - Import a new account and use the account seed phrase provided by Ganache
- Create and connect to a custom RPC network using the Ganache RPC server (currently
- Solidity Smart Contracts
- IPFS for storing image data via Infura
- Truffle and Ganache for our development and testing framework
- HTML5 / CSS3 / React / Redux / Bootstrap 4 for our front-end development
- Ethereum blockchain acts as our back-end storage
- MetaMask for our web3 provider