TenderChain is a comprehensive blockchain-based tender management system with enhanced features for transparency, stake-based security, and multi-party verification.
tendersystem-blockchain/
├── README.md # This file
├── index.html # Main landing page
├── package.json # Node.js dependencies
├── truffle-config.js # Truffle configuration
├── web3.min.js # Web3 library
│
├── contracts/ # Smart contracts
├── migrations/ # Deployment scripts
├── build/ # Compiled contracts
├── backend/ # Node.js backend (MongoDB + APIs)
├── frontend/ # Frontend assets
├── web3/ # Web3 configurations and contracts
│
├── src/
│ ├── dashboards/ # Modern dashboard files
│ │ ├── dashboardGovernmentOfficer-modern.html
│ │ ├── dashboardContractor-modern.html
│ │ └── dashboardVerifier-modern.html
│ ├── auth/ # Authentication pages
│ │ ├── login-fixed.html
│ │ ├── login-new.html
│ │ └── register-fixed.html
│ └── scripts/ # Utility scripts
│ ├── setup.sh
│ ├── stop.sh
│ ├── quick-start.sh
│ └── test_enhanced_system.js
│
└── docs/ # Documentation
├── ENHANCED_DEPLOYMENT_SUMMARY.md
├── BACKEND_ARCHITECTURE.md
├── PROJECT_ANALYSIS_AND_FIXES.md
├── METAMASK_SETUP_GUIDE.md
└── README.md (original)
- Node.js (v14+)
- Ganache CLI or Ganache GUI for native blokchain
- MetaMask browser extension for authorization
- IPFS for decentralized media storage
-
Install dependencies:
npm install
-
Start Ganache:
./src/scripts/setup.sh
-
Deploy contracts:
npx truffle migrate --reset --network development
-
Start frontend server:
python3 -m http.server 3000
-
Access the application:
- Main page: http://localhost:3000
- Login: http://localhost:3000/src/auth/login-fixed.html
node src/scripts/test_enhanced_system.js- Multi-user System: Government Officers, Contractors, Verifiers
- Tender Management: Complete lifecycle from creation to completion
- Contract Management: Milestone-based project execution
- Verification System: Third-party verification with stakes
- Stake-based Security: Economic incentives for honest participation
- Public Transparency: Community monitoring and corruption reporting
- IPFS Integration: Immutable evidence and proof storage
- Encrypted Bidding: Secure bid submission with key-based decryption
Key contracts deployed on local Ganache:
- FactoryTender:
0xeea2Fc1D255Fd28aA15c6c2324Ad40B03267f9c5 - StakeManager:
0xe97DbD7116D168190F8A6E7beB1092c103c53a12 - PublicClaims:
0xF16165f1046f1B3cDB37dA25E835B986E696313A - FactoryVerifier:
0x8914a9E5C5E234fDC3Ce9dc155ec19F43947ab59
Full contract list available in: web3/contracts.js
- Create and manage tenders
- Approve contractors
- Assign verifiers to contracts
- Monitor project progress
- Register with KYC information
- Submit bids on tenders
- Execute awarded contracts
- Report milestone completion
- Register as professional verifier
- Verify contract milestones
- Stake tokens for verification
- Build reputation through accurate verification
Detailed documentation available in the docs/ directory:
The backend API is built with Node.js, Express, and MongoDB:
cd backend
npm install
npm run devModern dashboards are located in src/dashboards/. Each dashboard is a self-contained HTML file with embedded JavaScript and CSS.
Contracts are in the contracts/ directory. After making changes:
npx truffle compile
npx truffle migrate --reset --network development- Economic Security: Stake-based participation prevents malicious behavior
- Multi-party Verification: Multiple independent verifiers for milestone approval
- Transparent Operations: All actions recorded on blockchain
- IPFS Evidence Storage: Immutable proof and evidence storage
For issues and support:
- Check the documentation in
docs/ - Review contract deployment status with test script
- Verify Ganache connection and MetaMask setup
This project is developed for educational and demonstration purposes.
Status: ✅ Staging Ready
Last Updated: Enhanced system with stake-based security and transparency features
Network: Local Ganache (configurable for testnets/mainnet)