Skip to content

Decentralized Crowdfunding application powered by Algorand

Notifications You must be signed in to change notification settings

mwritescode/crazyfunding

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python Algorand JavaScript React

CrazyFunding

Landing Page


This demo was realized for the 3rd italian edition of MasterZ.|Blockchain & Digital Assets. It's an on-chain crowdfunding platform: every new crowdfunding campaign deploys a stateful smart contract - which maintaines the relevant information (like start and end date) and which also deals with local user-information after opt-in - and a stateless smart contract, which acts as an escrow account, where the funds are kept locked until the end of the fundraising campaign.

The smart contracts where developed in Python using PyTEAL, while the frontend is realized using JavaScript and React. The app is currently online here.

Development Setup

This repo was tested with Python 3.10.4. In order to install the requirements for the backend-only demo, we recommend you create a virtual environment, activate it and then simply run

  pip install -U pip
  pip install -r requirements.txt

If you want to run the demo you'd need to install the Algorand Sandbox (requires Docker): then, from your Sandbox directory run sh ./sandbox up. This will create a private Algorand network, generating and funding a 3 different accounts that you can use for testing purposes. If however you need more accounts, you can use the new_account_gen.sh shell script, which will create a new account and move funds to it.

Finally, you can run the backend-only demo through

  python -m src.contracts.demo

Client-side

We have a React.js project bootstrapped with create-react-app. Once you clone the repositorym to run a local version of this app simply move into the relative folder and run

  npm i
  npm start

The app should open in http://localhost:3000 and be visible in your browser. Note that to interact with the Algorand blockchain you need the AlgoSigner extension for Chrome.