A blockchain-based platform for verifying and tokenizing blue carbon projects. This platform uses AI to analyze coastal ecosystem images and issues carbon credits as NFTs.
- Blockchain Integration: Smart contract deployment on Polygon Network
- AI Analysis: Image processing for carbon credit calculation
- NFT Minting: Convert carbon credits into tradeable NFTs
- Project Management: Track and manage blue carbon projects
- Verification System: Verified organization status for project validation
- Frontend: React.js, TailwindCSS
- Backend: Node.js, Express
- Blockchain: Ethereum/Polygon, Solidity
- AI/ML: Python (for image analysis)
- Storage: IPFS (for decentralized storage)
- Node.js (v14 or higher)
- Python 3.x (for AI model)
- MetaMask wallet
- Git
- Clone the repository:
git clone https://github.com/yourusername/blue-carbon-project.git
cd blue-carbon-project- Install dependencies:
# Install backend dependencies
cd backend
npm install
# Install frontend dependencies
cd ../frontend
npm install- Set up environment variables:
# In backend/.env
CONTRACT_ADDRESS=your_contract_address
PRIVATE_KEY=your_private_key
RPC_URL=your_rpc_url
PORT=3001
# In frontend/.env
REACT_APP_BACKEND_URL=http://localhost:3001- Start the backend server:
cd backend
npm start- Start the frontend development server:
cd frontend
npm start- Access the application at
http://localhost:3000
POST /api/projects: Create a new projectGET /api/projects/user/:address: Get user's projectsGET /api/projects/:id: Get single project detailsGET /api/stats: Get platform statisticsGET /api/verify/:address: Check if address is verifiedGET /api/admin: Get admin addressPOST /api/admin/verify-org: Add verified organization
createProject: Create a new blue carbon projectverifyProjectAndIssueCredits: Verify project and issue carbon creditsaddVerifiedOrganization: Add a verified organizationgetPlatformStats: Get platform statisticsgetProject: Get project details
blue-carbon-project/
├── backend/
│ ├── ai_results/
│ ├── contract/
│ │ └── BlueCarbonRegistry.sol
│ ├── controllers/
│ │ ├── adminController.js
│ │ ├── healthController.js
│ │ └── projectController.js
│ ├── models/
│ │ ├── aiModel.js
│ │ └── blockchainModel.js
│ ├── routes/
│ │ ├── adminRoutes.js
│ │ ├── healthRoutes.js
│ │ └── projectRoutes.js
│ ├── services/
│ │ ├── aiService.js
│ │ └── blockchainService.js
│ ├── uploads/
│ ├── utils/
│ │ └── multerConfig.js
│ ├── .env
│ └── .gitignore
├── frontend/
│ ├── src/
│ │ ├── components/
│ │ ├── pages/
│ │ └── App.js
│ └── public/
└── README.md
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- OpenZeppelin for smart contract libraries
- IPFS for decentralized storage
- Polygon for blockchain infrastructure