*Il tempo tracciato da WakaTime si riferisce esclusivamente alla scrittura attiva del codice e NON include le ore dedicate alla ricerca, alla progettazione e alla risoluzione di bug.
- Cos'è Chain4Good
- Chi siamo
- Obiettivi e Funzionalità
- Architettura del Sistema
- Installazione
- Comandi Utili
- Relazione
- Licenza
Il Crowdfunding trasparente e decentralizzato.
Chain4Good è una piattaforma di Donation-based Crowdfunding (DCF) decentralizzata, progettata specificamente per supportare le iniziative degli Enti del Terzo Settore.
A differenza delle piattaforme tradizionali, Chain4Good utilizza la tecnologia blockchain per garantire che ogni donazione sia tracciabile, immutabile e che i fondi vengano rilasciati solo a fronte di spese reali approvate dalla comunità dei donatori
Il progetto è stato ideato e sviluppato da:
- Jonathan CAPUTO
- Angelica DE FEUDIS
- Luca GENTILE
L'obiettivo principale è restituire al donatore un ruolo attivo, trasformando la donazione in un processo sicuro e verificabile.
- Custodia Decentralizzata: I fondi raccolti non vengono erogati immediatamente, ma restano vincolati in uno Smart Contract.
- Erogazione Incrementale: L'Ente può accedere ai fondi solo presentando richieste di spesa specifiche corredate da preventivi.
- Votazione Democratica: I donatori votano per approvare o negare il rilascio dei fondi per ogni singola spesa.
- Utilizzo di Stablecoin: Per evitare la volatilità, il sistema opera esclusivamente con stablecoin come EURC o USDC.
Chain4Good utilizza un'architettura ibrida che combina la scalabilità del Web2 con la sicurezza del Web3 (Stack MERN + Web3):
- Front-end: React.js, Tailwind CSS, React Router e TanStack Query.
- Back-end: Node.js, Express.js e TypeScript.
- Database: MongoDB (Mongoose) per i metadati off-chain.
- Blockchain: Smart Contract in Solidity gestiti tramite Hardhat.
- Docker e Docker Compose installati.
- Wallet Ethereum (es. MetaMask) configurato.
-
Clona la repository:
git clone [https://github.com/Jonnycp/Chain4Good.git](https://github.com/Jonnycp/Chain4Good.git) cd Chain4Good -
Configura il
.enve l'enviroment neldocker-compose.ymlVITE_BACKEND_URL=http://localhost:3000 VITE_HARDHAT_RPC_URL=http://http://localhost:8545 NODE_ENV=production PORT=3000 MONGO_URI=mongodb://mongodb:27017/chain4good RPC_URL=http://http://localhost:8545 FRONTEND_URL=http://http://localhost:5173 DEPLOYMENT_ADDRESSES_PATH=/shared/ignition/deployments/chain-31337/deployed_addresses.json -
Avvia i container docker
docker compose up --build
-
Visita localhost:5173 per il frontend e loggati con Metamask
Assegna o rimuovi NFT ente verificato
docker exec chain4good_blockchain npx hardhat manage-ente <address> <mint | burn>Assegna token EURC secondo il contratto Mock o ETH
docker exec chain4good_blockchain npx hardhat giveCash <address> <amount> <eurc | eth> --network localhostRipristino database
docker cp </percorso/al/.archive> chain4good_db:/backup_chain4good.archive
docker exec -it chain4good_db mongorestore --archive=/backup_chain4good.archive --dropNessuna parte di questo lavoro può essere riprodotta, distribuita o utilizzata per qualsiasi altro scopo senza il preventivo consenso scritto dell’autore.
© 2026 Angelica De Feudis, Jonathan Caputo, Luca Gentile. Tutti i diritti riservati.


