DAPP that facilitates Loan Process, no-required third party based on Ethereum Network. It has a mechanism to incentive good behaviour by giving users heart token which can be used to redeem coupon.
Authors: Abhay Deshpande and Teja Narasimha Reddy.
Email : [email protected], [email protected]
- Micro financing through blockchain using Arbitrum can provide a revolutionary solution for refugees who struggle to make a living without proper identification, which makes it difficult for them to access traditional banking services. With Arbitrum's fast and secure blockchain technology, refugees can obtain micro loans without the need for collateral or a credit history, empowering them to start small businesses and become financially independent. * This innovative approach to financing can significantly improve the lives of refugees and support their journey towards self-sustainability. By deploying Arbitrum's blockchain, the lending process becomes transparent, secure and highly efficient, enabling lenders and borrowers to transact directly and transparently without the need for intermediaries. This technology also ensures that funds are distributed equitably, without the risk of corruption or misappropriation.
- Overall, micro financing through blockchain using Arbitrum has the potential to be a powerful tool for social and economic empowerment, enabling refugees to build better lives for themselves and their communities.
The emergence of Blockchain is a key to solve any intermediary-related problem. Lenders and Borrowers can communicate directly, all loan transactions are stored in immutable database. The comparision of non-Blockchain and Blockchain solution :
Non-Blockchain | Blockchain |
---|---|
Expensive traditional audit process | Small amount of money for gas fee |
Truthless intermediary company | No need third party |
Transactions can be manipulated | Tranparent and secure transactions |
FrontEnd : React.JS, Javascript, Redux, Metamask, Core Wallet Extension, ThirdWeb SDK's
Smart Contract : Solidity
On Chain Database : Arbitrum Blockchain Off Chain Database : Firebase
-
LoanDB.sol
Name Type Structure Visibility Purpose debt
struct { address lender; address borrower;uint256 amountOfDebt;uint256 interest; uint8 loanState;} N/A Structure to store debt details LoanState
enum {REQUESTED, FUNDED, PAID} N/A State of loan debtInfo
mapping (bytes32 debtID=> debt) private mapping of debtID with the debt struct debtHistory
mapping (address borrower => bytes32[] debtID) private mapping of borrower with debtID list lendHistory
mapping (address lender => bytes32[] debtID) private mapping of lender with debtID list haveDebt
mapping (address user => bool haveDebt) private checking user is having debt or not -
Wallet.sol
Name Type Structure Visibility Purpose _deposits
mapping (address user => uint256 amount) private the amount of money that user has
All user information and debt details are stored in Firebase Database.
/infor
- name.
- address.
- phone.
- userAddr.
/debt
- amount.
- borrower.
- debtNo.
- reason.
/coupon
- product.
- productCode.
- userAddr.
Testing the smart contracts
Step 1 : Install Ganache (https://trufflesuite.com/ganache/)
Step 2 : Configure the Truffle Config file to connect to Ganache local environment
Step 3 : Run "truffle test" to test the smart contract
Network : Arbitrum Goerli TestNet
Deployed and Published Contract Addresses with ThirdWeb on , Goerli TestNet Network: Link
-
Blockchain
- Implemented contracts structure that can be upgraded.
- Write Test Cases for Each Smart Contract
- Incorporate all the functionalities into the frontend
-
Front-end
- Finished necessary pages.
- Created better responsive pages for mobile and tablet.
- Test cases for Front-end.
-
Back-end
- Scaling the data properly using Firebase Tools
- Able to secure and efficiently store data on Firebase
- Switch centralized database (Firebase) to decentralized database (IPFS).
Setting up project on local machine :
Step 1 : NodeJS Installation
Step 2 : Have an npm or yarn libary installed on the machine
Step 3 : install the dependencies using npm install or yarn add (Inside client as well as on the root folder of the repository)
Step 4 : Inside the Client folder, run "npm start" or "yarn start" to connect to localhost and run the project.