Skip to content

Ethereum DApp for crowdfunding developed for "Data Security" course using Truffle Suite, ReactJS

License

Notifications You must be signed in to change notification settings

MCalenda/FundMeNow

Repository files navigation

GitHub contributors GitHub issues GitHub forks

Travis CI

Introduction

FundMeNow is a decentralized crowdfunding platform based on Ethereum blockchain developed using Truffle and ReactJS for the Data Security course at @Unisa. User accounts can create projects in order to raise funds (ETH) for multiple purposes. The platform is based on the All-or-Nothing model, which means that the project owner can withdraw the funds only if the campaign is successful, otherwise the funds are withdrawable by the funder whom can still fund the campaign after the deadline has passed, and the target has not been reached.

Cover

Programming languages and technologies

JavaScript Badge Solidity Badge

Truffle Badge Ganache Badge Ethereum Badge

Web3.js Badge React Badge Mocha Badge

Installation

The project is divided into two main folders: client and contracts. The former contains the ReactJS application, while the latter contains the Solidity smart contracts. The migrations folder contains the migration scripts for the smart contracts.

Prerequisites

Installation

  1. Install NPM packages.

    npm install
  2. Run the local blockchain using Ganache, the default port is 8545.

    ganache-cli

    Optionally: run the blockchain with the reccomended prameters using the provided script, this will launch the blockchain in deterministic mode saving the db in the ./ganache_db folder.

    chmod +x ./scripts/run_ganache.sh
    ./scripts/run_ganache.sh
  3. Migrate the smart contracts.

    truffle migrate
  4. Run the ReactJS application, the default port is 3000.

    npm start

In order to use FundMeNow is required to have MetaMask wallet (or similar) connected to ganache, we suggest to use the chrome extension.

License

Distributed under the MIT License. See LICENSE for more information.