skhiearth / QuickMoney

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

QuickMoney

Code snippets and supporting documentations for the QuickMoney project built on Matic, Ethereum and Portis

About QuickMoney

Video Walkthrough

For a detailed video explanation with voice-over, click here.

Overview

INSPIRATION

The Coronavirus Pandemic has not only created a health emergency but has forced economies to shut down across the globe. In India, Small and medium-sized Enterprises and Startups had already been struggling to stay afloat due to lack of financing, creating an inadequate/limited cash flow. Now with the lockdown being enforced from time to time, the situation has worsened, making it difficult for them to apply for bank loans. After assessing the current scenario, we decided to develop a Peer-to-Peer lending web application, a blockchain-powered solution, facilitating quick, easy and secure loan transactions.

STRUCTURE AND FUNCTIONALITY

With our aim to provide relief to economically stricken individuals and organizations, borrowers can send in a loan request with a total loan amount that they require and a short description regarding the same. Along with these details, a credit score of the borrower is attached to the request, which will help the lender in assessing their credibility. Striking feature: Our credit scoring system doesn’t offer a binary decision for loans, keeping in line with the decentralized nature of the platform, we use industry-standard metrics like Weight of Evidence (WoE) and Information Value (IV), used by Financial Analysts, along with Machine learning models like Logistic Regression to provide a scorecard for each user. Lenders on QuickMoney can browse all loans and put forth their terms. The Decision on submitting a proposal is completely on the mercy of the lenders, and we don’t have any say on that matter. The credit score of the borrowers puts itself as a truly decentralized method to assess loan requests.

Framework

After submitting proposals, lenders can cancel them and claim their refund till the time a borrower confirms the proposal. After the confirmation from the borrower, the loan amount is transferred to the borrower’s wallet and a smart EMI plan is started. The borrower is notified about their total, and per-loan EMI so that they can keep track of their finances. All EMIs are paid directly to the lender, and QuickMoney doesn’t keep any middle-man charges. Key features-

  1. No third-party or intermediary involved, hence, reduce overhead costs.
  2. Smart-contract enabled loan process
  3. High transparency and Data Security
  4. Quicker loan processing than the traditional method

multiple lenders

TECHNICAL IMPLEMENTATION

QuickMoney is built on top of the Ethereum and Matic blockchains. Levering all the perks of the powerful ecosystem, our smart contracts are written in Solidity. During development, the Truffle CLI is used for compiling and migrating the contracts. The front-end Web Application is built on React, offering a highly scalable and responsive platform. Users are exposed to financial transactions using Metamask, where they can add any account of their choice and the entire application connects to the Ethereum Blockchain using Infura and communicates using the web3.js library. QuickMoney allows users to engage in transactions using any cryptocurrency of their choice, be it stable coins like DAI (pegged to a 1 USD value) or any other ERC20 token of their choice. We have used Portis as a Wallet Provider because of its seamless user interface which keeps the technical jargon out of the user’s view and lets them focus at what it important. Our breakthrough financial credit scoring model is built in Python and deployed as a Flask App on Heroku. Users credit ratings are persisted in a connected Firebase Realtime Database. Using graphical charts made available in the user interface, borrowers can keep a track of their credit ratings over time. Our scorecard follows the first principle of financial modelling, i.e., it is easy to interpret. Advance users can keep a deep dive into the distributions employed by the scorecard. The complete application is deployed publicly using automatic deploys from GitHub to Netlify.

Technical Implementation

Requirements

Hardware

  • macOS, Windows or Linux
  • Atleast 4GB of RAM recommended

Software

  • Google Chrome, Brave or any Ethereum-enable browser
  • Metamask Extension
  • nodeJS
  • Ganache Stand-alone application or Ganache CLI
  • Truffle Suite
  • A code editor (VS Code preffered)

Instructions

Clone the GitHub repo on your local machine. Navigate to the project folder in the terminal and run npm install to install dependencies.

For local development on a local blockchain: Launch Ganache, and quickstart a workspace. In the terminal, enter truffle migrate --reset to push the contracts to the local chain, then run npm run start to start the Web Application in your browser.

For Ethereum/Matic public deployment: Make sure you have enough ETH in your wallet, or use any Ropsten faucet. In the truffle-config.js file in the project root, change the mnemonic and provider to your wallet's mnemonic and your Infura node. After that, run truffle migrate --reset --network ropsten or truffle migrate --reset --network matic to push the contracts to the Ropsten/Matic Mumbai network. Run npm run start to start the Web Application in your browser. For deployment of the application, use Netlify and your GitHub remote. To get the build folder need by Netlify, use npm run build.

Note: If you decide to deploy using your personal account, ensure that there are enough MATIC/ETH tokens in your account. You can request tokens using the publically available faucet for the Matic Mumbai network or faucets for the Ropsten network.

Tech Stack:

Portis

Made with ⚡ by Simran and Utkarsh

About

License:GNU Affero General Public License v3.0


Languages

Language:Jupyter Notebook 96.0%Language:JavaScript 3.2%Language:Python 0.5%Language:Solidity 0.2%Language:CSS 0.1%Language:HTML 0.0%