vinivst / bankchain

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

Bank Chain

A Bank running on the Blockchain.
Explore the docs »

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Tests
  5. Roadmap
  6. Contributing
  7. License
  8. Contact
  9. Acknowledgements

About The Project

Product Name Screen Shot

Create a new ERC20 Token and start your own Bank allowing users to invest your token and earn interest. Things you can do:

  • Create your own token
  • Enable (approve) your address to be able to invest on the bank
  • Deposit tokens
  • Withdraw tokens
  • Earn interest!!!

A list of commonly used resources that I find helpful are listed in the acknowledgements.

Built With

Getting Started

In the following sections you will learn how to clone this repo and get it up and running in no time.

Prerequisites

You need to have npm installed.

  • Download and install node, which already comes with npm:

Installation

  1. Clone the repo

    git clone https://github.com/vinivst/bankchain.git
  2. Install NPM packages in project ("backend")

    npm install
  3. Install NPM packages in client

    cd client
    npm install
  4. Register a new account in Infura and create a new project to get your rinkeby key at https://infura.io/dashboard/ethereum

  5. Create a .env file at root path

  6. Create and save inside the .env the following:

    1. The MNEMONIC (12 words seed phrase from your wallet)
    2. INFURA_KEY (that you got from step 3)
    3. INITIAL_TOKENS (the initial supply of your Token)
    4. TOKEN_NAME (the name of your token)
    5. TOKEN_SYMBOL (the symbol of your token)
    6. TOKEN_REWARD_POOL (the amount of initial tokens that will be rewarded to the users as interest)
    7. TIME_PERIOD (IN SECONDS - the minimum amount of time to allow users to withdraw, the more time a user stay with funds on the contract more interests he earns)

    Use .env.example file to help:

    INITIAL_TOKENS = 1000000
    MNEMONIC = globe nephew genre emotion morning best penalty trade bid glare unaware dragon
    INFURA_KEY = https://rinkeby.infura.io/v3/you_key_here
    TOKEN_NAME = Vinicius
    TOKEN_SYMBOL = VINI
    TOKEN_REWARD_POOL = 1000
    TIME_PERIOD = 60
  7. Deploy your smart contracts

    truffle migrate --network rinkeby
  8. Change to client directory and run react

    cd client
    npm start
  9. Enjoy your new ERC20 Token and your own Bank! 😄

Usage (Metamask didn't shows in the gifs)

  1. User must approve an amount first to invest

  2. Then user can deposit tokens

  3. After TIME_PERIOD has passed user can withdraw their funds plus interest

Tests

You can see all the tests inside the test folder. The tests were all made using Truffle and Web3. To run the tests simply use:

truffle test

Roadmap

See the open issues for a list of proposed features (and known issues).

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the GNU GPLv3 License. See LICENSE for more information.

Contact

Vinicius Santiago - Linkedin

Project Link: https://github.com/vinivst/bankchain

Acknowledgements

About

License:MIT License


Languages

Language:JavaScript 81.3%Language:Solidity 12.6%Language:HTML 4.1%Language:CSS 1.6%Language:Shell 0.4%