CryptoPot is a decentralized crowdfunding platform that enables charities to receive cryptocurrency donations transparently and securely using blockchain technology. The platform is built with a robust Angular front-end, a Symfony back-end, and smart contracts written in Solidity.
- Secure Fundraising: Transparent and traceable crypto donations via Ethereum smart contracts.
- Real-Time Campaign Tracking: Dynamic updates on campaign progress.
- User Authentication: Secure login and donation processes via MetaMask.
- Multi-Charity Support: Enables multiple charities to create and manage fundraising campaigns.
- Stablecoin Support: Accepts USDT, USDC, and BUSD to ensure stable donations.
- Frontend: Angular (TypeScript, RxJS, Bootstrap)
- Backend: Symfony (PHP, REST API)
- Blockchain: Solidity (Ethereum smart contracts)
- Database: PostgreSQL
- Tools & Libraries: Web3.js, Ethers.js, MetaMask integration
Follow the steps below to set up and run the CryptoPot project locally.
Ensure you have the following installed:
- Node.js (v16+ recommended)
- Angular CLI (v15+)
- PHP (v8.1+)
- Composer
- PostgreSQL
- MetaMask (browser extension)
git clone /~https://github.com/your-repo/cryptopot.git
cd cryptopot
Navigate to the frontend/
directory and install dependencies:
cd frontend
npm install
ng serve --open
The application will run at http://localhost:4200
.
Navigate to the backend/
directory and install dependencies:
cd backend
composer install
Create a .env
file in the backend/
directory with the following content:
APP_ENV=dev
APP_DEBUG=true
DATABASE_URL=postgresql://user:password@localhost:5432/cryptopot
Replace user
and password
with your PostgreSQL credentials.
php bin/console doctrine:migrations:migrate
php -S 127.0.0.1:8000 -t public
The API will be available at http://127.0.0.1:8000
.
ng test
php bin/phpunit
Navigate to the contracts/
directory and install dependencies:
cd contracts
npm install
npx hardhat compile
Ensure you have configured your .env
file with an Infura API key and a wallet private key:
INFURA_API_KEY=your_infura_api_key
WALLET_PRIVATE_KEY=your_wallet_private_key
Run the deployment script:
npx hardhat run scripts/deploy.js --network rinkeby
- Add support for additional blockchains such as BNB Chain and Polygon.
- Implement multi-signature wallets for enhanced security.
- Introduce a mobile-friendly UI.
This project is licensed under the MIT License - see the LICENSE file for details.
Enjoy using CryptoPot! 🚀