
Crop Chain
Connecting farms to forks
About
The problem it solves ## The Problem It Solves The modern agricultural supply chain is often a "black box." Between the moment a seed is planted and the moment the produce reaches a consumer's plate, data is frequently lost, altered, or obscured. **CropChain** addresses these critical pain points: ### 1. Lack of Transparency & "Greenwashing" In traditional systems, consumers have no way to verify if "organic" or "locally sourced" labels are genuine. * **The Solution:** By using **Ethereum/Polygon blockchain**, CropChain creates an immutable ledger. Once a farmer logs a harvest, that data cannot be tampered with by middlemen, ensuring 100% data integrity and building authentic trust. ### 2. Slow and Wasteful Food Recalls When a foodborne illness outbreak occurs, it currently takes days or even weeks to trace a contaminated batch back to its source. This delay leads to massive food waste and public health risks. * **The Solution:** With **Instant QR Code Tracking**, authorities can pinpoint the exact farm, batch number, and transport vehicle in seconds. This allows for "surgical" recalls—removing only the affected items instead of discarding entire regional stocks. ### 3. The Information "Black Hole" Farmers often lose visibility of their products once they leave the farm gate, and retailers struggle to verify the storage conditions or transit times. * **The Solution:** The **Multi-Role Interface** ensures a continuous "Chain of Custody": * **Farmers** provide proof of origin. * **Transporters** log hand-off points and timestamps. * **Retailers** verify the entire journey before accepting delivery. ### 4. Fragmented & Error-Prone Paperwork Many supply chains still rely on manual logs and siloed databases, which are easy to lose and easy to falsify. * **The Solution:** A **Unified Digital Ecosystem** (React + Node.js + Solidity) digitizes the entire workflow. It replaces messy paperwork with a simple, scan-and-go mobile experience that is synchronized across all stakeholders in real-time. ### 5. Preventing Fraud and Counterfeiting High-value crops (like specialty coffee, honey, or saffron) are often diluted with cheaper alternatives during transit. * **The Solution:** **Smart Contract Access Control** ensures that only authorized, verified actors can update a batch's status. If a product appears on a shelf without a matching, verified blockchain history, it is immediately flagged as a counterfeit. --- ### Summary of Impact | Feature | Existing Method | CropChain Solution | | :--- | :--- | :--- | | **Data Security** | Centralized/Paper Logs | **Decentralized Blockchain** | | **Traceability** | Manual Investigation (Days) | **Instant QR Scan (Seconds)** | | **Verification** | Blind Trust | **Cryptographic Proof** | | **Accessibility** | Siloed Databases | **Real-time Unified Dashboard** | ---
How it's made
Challenges we ran into ## Challenges I Ran Into Building a decentralized application (dApp) is never a straight line. **CropChain** pushed me to solve complex integration issues between traditional web technologies and the blockchain. Here are the specific hurdles I faced: ### 1. The 3-Day Troubleshooting: Smart Contract Event Syncing The biggest hurdle was a persistent bug where the Frontend UI would not update after a transaction was confirmed on the blockchain. * **The Issue:** I spent **3 days** troubleshooting why the `BatchCreated` events weren't being picked up by the backend listener. It turned out to be a mismatch between the **WebSocket provider** (Infura/Alchemy) and the local state management. * **The Fix:** After deep-diving into documentation and community forums, I implemented a custom **polling mechanism** combined with `ethers.js` event listeners. I also added a **"Pending" state** in the UI to handle the lag between block mining and data availability. ### 2. Managing Role-Based Access Control (RBAC) Designing a system where only a "Transporter" could update the shipping status, but only a "Farmer" could create the batch, was tricky to implement securely. * **The Challenge:** Ensuring that security wasn't just on the Frontend, but also strictly enforced in the **Solidity Smart Contract**. * **The Fix:** I utilized the **OpenZeppelin AccessControl library**, creating specific `ROLES` (`FARMER_ROLE`, `TRANSPORTER_ROLE`). This ensured that even if someone bypassed the UI, the blockchain would reject unauthorized transactions. ### 3. Gas Fee Optimization Every step of the supply chain requires a transaction. On a mainnet, these costs can add up quickly for a farmer. * **The Challenge:** Reducing the "Gas Cost" of updating a crop's journey. * **The Fix:** I optimized the Smart Contract by using `structs` and minimizing on-chain storage. I moved non-essential metadata (like crop photos and descriptions) to **MongoDB**, storing only the **Hash (CID)** on the blockchain to verify integrity without the high cost. ### 4. QR Code Scanning on Mobile Devices Integrating a web-based QR scanner that worked consistently across different mobile browsers (iOS Safari vs. Android Chrome) was a major UX challenge. * **The Fix:** I switched from a basic library to `html5-qrcode`, which provided better hardware access and more robust error handling for various camera resolutions. --- > **Reflection:** The 3-day bug was a turning point for the project. It taught me that building on Web3 requires a different mental model for "Real-Time" data compared to traditional Web2 development.