A decentralized web application (DApp) developed to demonstrate blockchain-driven transparency and accountability in public fund management. This project simulates a smart contract-based platform for the Niger Delta Development Commission (NDDC) to track and disburse project funds securely and transparently on the Ethereum blockchain.
Public institutions in developing regions, such as the NDDC, often struggle with inefficiency, corruption, and mismanagement in handling project funds. This prototype leverages blockchain's inherent features—immutability, decentralization, and transparency—to build trust and automate financial processes through smart contracts.
The prototype includes:
- A smart contract (Solidity) deployed to Ethereum Sepolia testnet
- A web-based frontend built with HTML, JavaScript, and Web3.js
- MetaMask integration for secure wallet interaction
🔗 Live Demo: https://nddc-blockchain-prototype.vercel.app
💻 Smart Contract:contracts/ProjectFunding.sol
- ✅ Smart contract deployment on Sepolia testnet
- ✅ ETH deposits to the contract via MetaMask
- ✅ Admin-only fund disbursement to recipients
- ✅ Transparent transaction history with timestamps
- ✅ Real-time connection to Ethereum using Web3.js
- Solidity (Smart contract development)
- Ethereum (Sepolia Testnet)
- Hardhat (Smart contract compilation & deployment)
- JavaScript + Web3.js (Frontend blockchain interaction)
- MetaMask (Wallet connection)
- Vercel (Frontend deployment)
To run locally:
# Clone the repository
git clone https://github.com/amirofekiti/NDDC-Blockchain-Prototype.git
# Navigate to the project directory
cd NDDC-Blockchain-Prototype
# Install dependencies
npm install
# Run local development server
npm run devMake sure to:
- Install and configure MetaMask
- Use the Sepolia Testnet with test ETH
- Set up your
.envfile (optional, for Hardhat deployment)
- Accepts ETH deposits from any user.
- Emits events on successful transfer.
- Transfers specified ETH to a recipient (admin only).
- Records the transaction in the on-chain history.
- Retrieves a specific transaction from history.
- Returns total number of disbursements made.
- Connect MetaMask to Sepolia testnet.
- Deposit ETH via the DApp input form.
- As admin, disburse ETH to a recipient wallet.
- View the immutable transaction records.
Use Etherscan Sepolia to verify on-chain activity.
Contributions are welcome! If you'd like to improve the UI, extend functionality (e.g., add audit trails, notification systems), or integrate with legacy systems, feel free to fork and submit a pull request.
To contribute:
- Fork the repository
- Create a new branch (
git checkout -b feature-xyz) - Commit your changes (
git commit -m 'Add new feature') - Push to the branch (
git push origin feature-xyz) - Open a pull request
Please follow clean code practices and add relevant documentation where necessary.
This project is open-sourced under the MIT License. See LICENSE for more information.
Opeyemi Osho
MSc IT Project Management, Teesside University
LinkedIn | GitHub