dCharity is a decentralized application (dApp) for event-based charitable donations built on Algorand. It leverages smart contracts to securely manage donations, making them conditional on real-world events—allowing donors to support causes with confidence that their funds are released only when specific criteria are met.
- Event-Based Donations: Donations are locked in smart contracts and only released when pre-defined events occur (e.g., achievement of fundraising goals, successful completion of charity actions).
- Algorand Blockchain: Utilizes Algorand for low fees, security, and fast finality.
- Full Stack Solution: Composed of Python-based smart contracts and a React frontend for user interaction.
- Developer Experience: Includes robust tooling, local blockchain simulation, and modern dev workflows.
- Language: Python (with PyTeal for Algorand smart contracts)
- Contracts:
- Donation Escrow: Holds donor funds until event conditions are met.
- Event Oracle Integration: Connects to off-chain oracles to verify real-world events.
- Release Logic: Ensures atomicity and transparency in fund release or refund.
- Framework: React
- Features:
- Wallet Integration: Connect your Algorand wallet to donate or track events.
- Live Event Dashboard: View active campaigns, event status, and donation history.
- Interactive UI: Powered by Tailwind CSS and daisyUI for a modern look.
- Localnet: Simulate the Algorand network with
algokit localnet start. - Testing: Python (pytest), JavaScript (jest, playwright).
- Code Quality: Poetry, Black, Ruff, Flake8, mypy, Prettier, ESLint.
- CI/CD: GitHub Actions for build validation.
- Clone the repository
git clone https://github.com/marissashey/dCharity.git - Install Docker and set up AlgoKit.
- Start local Algorand network:
algokit localnet start - Bootstrap the project:
algokit project bootstrap all - Build contracts:
algokit project run build(inside/projects/dCharity-contracts) - Deploy contracts:
algokit project deploy localnet(inside/projects/dCharity-contracts) - Start the frontend:
npm run dev(inside/projects/dCharity-frontend)
- If you pull new code with updated dependencies:
algokit project bootstrap all - Rebuild, redeploy contracts, and restart the frontend as above.
- Algorand, AlgoKit, AlgoKit Utils
- Python: Poetry, Black, Ruff, Flake8, mypy, pytest, pip-audit
- React: Tailwind CSS, daisyUI, use-wallet, npm, jest, playwright
- DevOps: GitHub Actions, Docker
- VS Code: Pre-configured for productivity (backend .vscode, frontend .vscode)
See the blockchain live:
algokit explore
- Customize smart contracts to your needs (e.g. support for more event types, advanced oracle integrations).
- Extend the frontend with new donation campaigns or visualization tools.
- Study AlgoKit documentation and Algorand smart contract patterns.
Pull requests, issues, and suggestions are welcome! Help us build more transparent, event-driven charity solutions.
See LICENSE for details.
