This project is my blockchain payment app that uses Ganache and Web3.py to integrate Ethereum transactions to hire FinTech professionals.
The web UI is created using Streamlit
Using Ganache, I create a personal Ethereum blockchain that the code connects to using Web3.py. With the Ethereum blockchain, transactions between the provided sample wallet addresses can be performed through the streamlit UI.
Transactions are sent by selecting one of the FinTech professionals and defining an amount of hours you would like to hire them for. The app then outputs the hourly rate, Ethereum address, and the total wage in Ether depeding on your specified input. Using the "Send Transaction" button will then initiate a blockchain transaction by creating a block and distributing the required Ether from the Ganache wallet.
In the Ganache UI you will be able to see that your wallet has reflected the transaction by decreasing the amount of Ether in your account balance.
You can then verify further that the transactions were sent to the correct addresses by comparing the defined sample FinTech professional account numbers to the ones in each transaction listed in the Ganache transaction history.
The Ganache transaction history will also show all of the transactions made using the app.
As you add transactions you will also be able to see them instantly reflected in the Ganache transaction history.
This is a Python 3.7 project ran using the following dependencies:
- Streamlit (1.18.1) - Web interface
- Web3.py (5.17) - Blockchain tools
- BIP44 (0.1.3) - HD wallet creation
- Ganache (2.7.0) - Ethereum blockchain environment
This project was ran using an Anaconda dev environment but assuming you have Python installed you will likely also be able to run this app after installing the required dependencies with Pip:
pip install streamlit
pip install web3==5.17
pip install bip44
The requirements.txt file in the Resources folder has the exact anaconda environment that I used in creating this project if you would like to copy it.
Create a copy of the conda dev environment with conda create --name myenv --file requirements.txt
Then install the requirements with conda install --name myenv --file requirements.txt
To run this app locally simply open a terminal window with this project as the main directory and type streamlit run fintech_finder.py
. This will open the Streamlit web UI in your browser on localhost 8501.
You will also need to open a Ganache workspace but a simple "Quickstart" workspace should be enough to test all of this app's functionalities.
This project uses the GNU General Public License