Skip to content

0xf-theo/cryptopot-efrei

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CryptoPot 🪙

Version Angular Symfony Solidity PostgreSQL License

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.


🌟 Features

  • 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.

🛠️ Tech Stack

  • 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

🚀 Getting Started

Follow the steps below to set up and run the CryptoPot project locally.

Prerequisites

Ensure you have the following installed:


🔧 Installation

1. Clone the repository

git clone /~https://github.com/your-repo/cryptopot.git
cd cryptopot

2. Front-End Setup (Angular)

Navigate to the frontend/ directory and install dependencies:

cd frontend
npm install

3. Start Angular Development Server

ng serve --open

The application will run at http://localhost:4200.


4. Back-End Setup (Symfony)

Navigate to the backend/ directory and install dependencies:

cd backend
composer install

5. Configure the Environment Variables

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.

6. Run Database Migrations

php bin/console doctrine:migrations:migrate

7. Start Symfony Development Server

php -S 127.0.0.1:8000 -t public

The API will be available at http://127.0.0.1:8000.


🧪 Running Tests

Front-End Tests

ng test

Back-End Tests

php bin/phpunit

📜 Smart Contracts Deployment

1. Install Dependencies

Navigate to the contracts/ directory and install dependencies:

cd contracts
npm install

2. Compile the Contracts

npx hardhat compile

3. Deploy to Ethereum Testnet (Rinkeby)

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

💡 Future Improvements

  • Add support for additional blockchains such as BNB Chain and Polygon.
  • Implement multi-signature wallets for enhanced security.
  • Introduce a mobile-friendly UI.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


Enjoy using CryptoPot! 🚀

About

Crypto project for EFREI Paris.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published