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.
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.
-
Install NPM packages.
npm install
-
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
-
Migrate the smart contracts.
truffle migrate
-
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.
Distributed under the MIT License. See LICENSE
for more information.