GithubHelp home page GithubHelp logo

ethansilvas / fintech-finder Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 3.37 MB

Blockchain payment app that uses Ganache and Web3.py to integrate Ethereum transactions to hire FinTech professionals

License: GNU General Public License v3.0

Python 100.00%
ethereum ganache python web3py

fintech-finder's Introduction

FinTech Finder (Blockchain Payment System) - UW FinTech BootCamp Module 19 Challenge

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


Summary

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.

Screenshot of app main screen showing side bar that allows user to hire fintech professionals and pay them per hour using the mock ganache ethereum blockchain

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.

Gif showing the user specifying a fintech professional, setting a small number of hours, and using the send transaction button to initiate the blockchain transaction

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.

Screenshot of Ganache UI showing the first wallet having a reduced (less than 100) wallet balance after making several transactions through the app

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.

Hard coded list of FinTech professionals and the sample account addresses Screenshot of Ganache transaction between ganache wallet and sample FinTech professional

The Ganache transaction history will also show all of the transactions made using the app.

List of transactions in the Ganache UI

As you add transactions you will also be able to see them instantly reflected in the Ganache transaction history.

Gif showing a new transaction appear in the Ganache transaction history after being sent using the UI


Technologies

This is a Python 3.7 project ran using the following dependencies:

  1. Streamlit (1.18.1) - Web interface
  2. Web3.py (5.17) - Blockchain tools
  3. BIP44 (0.1.3) - HD wallet creation
  4. Ganache (2.7.0) - Ethereum blockchain environment

Installation Guide

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


Usage

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.


Contributors

Ethan Silvas


License

This project uses the GNU General Public License

fintech-finder's People

Contributors

ethansilvas avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.