AgriTrace là một hệ thống truy xuất nguồn gốc nông sản được xây dựng trên công nghệ blockchain, đảm bảo tính minh bạch, bảo mật và có thể kiểm chứng trong toàn bộ chuỗi cung ứng nông nghiệp từ trang trại đến bàn ăn.
- Ghi chép bất biến trên blockchain đảm bảo tính toàn vẹn dữ liệu
- Ngăn chặn việc giả mạo và thay đổi thông tin sản phẩm
- Truy xuất đầy đủ lịch sử sản phẩm từ thu hoạch đến tiêu dùng
- Theo dõi sản phẩm qua từng bước của chuỗi cung ứng
- Cập nhật thông tin theo thời gian thực
- Thông báo tức thì về các sự kiện quan trọng
- Quét mã QR bằng thiết bị di động để xem thông tin sản phẩm
- Giao diện responsive tối ưu cho mọi thiết bị
- Hỗ trợ camera và tải file ảnh
- Nông dân (Farmer): Tạo sản phẩm và ghi nhận thu hoạch
- Nhà chế biến (Processor): Xử lý và chế biến sản phẩm
- Vận chuyển (Transporter): Vận chuyển sản phẩm
- Kho bãi (Warehouse): Lưu trữ và quản lý kho
- Bán lẻ (Retailer): Bán sản phẩm đến người tiêu dùng
- Quản trị viên (Admin): Quản lý hệ thống và xác thực người dùng
- Lưu trữ chứng chỉ và tài liệu trên IPFS
- Truy cập vĩnh viễn và bảo mật
- Hỗ trợ nhiều định dạng file
- Thúc đẩy thực hành nông nghiệp bền vững
- Tăng cường niềm tin của người tiêu dùng
- Hỗ trợ nông nghiệp hữu cơ và thương mại công bằng
- Blockchain: BNB Smart Chain (BSC)
- Frontend: HTML5, CSS3, JavaScript (ES6+)
- UI Framework: Bootstrap 5
- Icons: Font Awesome 6
- Blockchain Integration: Web3.js
- QR Code: QRCode.js, QR-Scanner
- Storage: IPFS (InterPlanetary File System)
- Smart Contract: Solidity ^0.8.19
- Node.js (phiên bản 14 trở lên)
- Trình duyệt web hiện đại (Chrome, Firefox, Safari, Edge)
- MetaMask hoặc ví blockchain tương thích
- Kết nối internet ổn định
-
Clone repository
git clone <repository-url> cd supplychain
-
Cài đặt dependencies
npm install
-
Tải các thư viện cần thiết
# Windows npm run setup # Linux/Mac npm run setup-unix
-
Khởi chạy ứng dụng
# Mở file index.html trong trình duyệt # Hoặc sử dụng local server python -m http.server 8000 # Truy cập: http://localhost:8000
-
Cài đặt MetaMask
- Tải và cài đặt MetaMask extension
- Tạo ví mới hoặc import ví hiện có
- Thêm BNB Smart Chain network
-
Cấu hình Smart Contract
- Deploy contract
AgriSupplyChain.sollên BSC - Cập nhật contract address trong
blockchain.js - Cấu hình ABI và network settings
- Deploy contract
-
Cấu hình IPFS
- Sử dụng IPFS gateway công cộng hoặc tự host
- Cập nhật IPFS endpoint trong
ipfs.js
-
Truy cập trang chủ
- Mở
index.htmltrong trình duyệt - Kết nối ví MetaMask (tùy chọn)
- Mở
-
Quét mã QR sản phẩm
- Nhấn nút "Scan QR Code"
- Cho phép truy cập camera
- Quét mã QR trên sản phẩm
-
Xem thông tin sản phẩm
- Xem lịch sử chuỗi cung ứng
- Kiểm tra thông tin nông dân
- Tải xuống tài liệu liên quan
-
Đăng ký tài khoản
- Truy cập
register.html - Chọn vai trò "Farmer"
- Nhập thông tin công ty
- Chờ admin xác thực
- Truy cập
-
Tạo sản phẩm mới
- Đăng nhập Farmer Dashboard
- Nhấn "Create Product"
- Điền thông tin sản phẩm:
- Tên sản phẩm
- Loại sản phẩm
- Nguồn gốc
- Ngày thu hoạch
- Ngày hết hạn
- Số lượng
- Đơn vị
- Tải lên tài liệu (tùy chọn)
-
Ghi nhận sự kiện thu hoạch
- Chọn sản phẩm từ danh sách
- Nhấn "Add Harvest Event"
- Điền thông tin:
- Vị trí thu hoạch
- Ghi chú
- Tài liệu chất lượng
-
Đăng ký và xác thực
- Đăng ký với vai trò "Processor"
- Chờ admin xác thực
-
Xử lý sản phẩm
- Truy cập Processor Dashboard
- Chọn sản phẩm cần xử lý
- Thêm sự kiện xử lý:
- Phương pháp xử lý
- Kiểm tra chất lượng
- Tài liệu chứng nhận
-
Đăng ký tài khoản
- Chọn vai trò "Transporter"
- Cung cấp thông tin công ty vận chuyển
-
Ghi nhận vận chuyển
- Nhận sản phẩm từ nông dân/nhà chế biến
- Thêm sự kiện "Transport Start"
- Giao hàng và thêm sự kiện "Transport End"
- Quản lý kho
- Đăng ký với vai trò "Warehouse"
- Nhận sản phẩm vào kho (Warehouse In)
- Xuất kho (Warehouse Out)
- Bán hàng
- Đăng ký với vai trò "Retailer"
- Nhận sản phẩm (Retail Receive)
- Bán cho khách hàng (Sale)
-
Quản lý người dùng
- Truy cập Admin Dashboard
- Xem danh sách người dùng đăng ký
- Xác thực hoặc từ chối người dùng
- Kích hoạt/vô hiệu hóa tài khoản
-
Giám sát hệ thống
- Xem thống kê tổng quan
- Theo dõi sản phẩm và sự kiện
- Quản lý hợp đồng thông minh
supplychain/
├── index.html # Trang chủ
├── register.html # Đăng ký người dùng
├── admin-setup.html # Thiết lập admin
├── admin-approval.html # Phê duyệt admin
├── package.json # Cấu hình npm
├── contracts/
│ └── AgriSupplyChain.sol # Smart contract
├── assets/
│ ├── css/ # Stylesheets
│ │ ├── main.css
│ │ ├── components.css
│ │ └── dashboard.css
│ ├── js/ # JavaScript files
│ │ ├── app.js # Ứng dụng chính
│ │ ├── blockchain.js # Tích hợp blockchain
│ │ ├── ipfs.js # Tích hợp IPFS
│ │ ├── utils.js # Tiện ích
│ │ └── web3.min.js # Web3 library
│ └── images/ # Hình ảnh
├── dashboard/ # Dashboards cho từng vai trò
│ ├── admin.html
│ ├── farmer.html
│ ├── processor.html
│ ├── transporter.html
│ ├── warehouse.html
│ └── retailer.html
└── test-*.html # Các file test
registerUser(role, companyName): Đăng ký người dùng mớiverifyUser(address): Xác thực người dùng (chỉ admin)activateUser(address): Kích hoạt người dùngdeactivateUser(address): Vô hiệu hóa người dùng
createProduct(batchId, productName, category, origin, harvestDate, expiryDate, quantity, unit, ipfsHash): Tạo sản phẩm mớiaddEvent(batchId, eventType, location, ipfsHash, notes): Thêm sự kiện chuỗi cung ứng
getProduct(batchId): Lấy thông tin sản phẩmgetEvents(batchId): Lấy lịch sử sự kiệngetUser(address): Lấy thông tin người dùnggetAllBatchIds(): Lấy danh sách tất cả batch ID
HARVEST: Thu hoạchPROCESSING: Chế biếnTRANSPORT_START: Bắt đầu vận chuyểnTRANSPORT_END: Kết thúc vận chuyểnWAREHOUSE_IN: Nhập khoWAREHOUSE_OUT: Xuất khoRETAIL_RECEIVE: Nhận hàng bán lẻSALE: Bán hàng
- Sử dụng modifiers để kiểm soát quyền truy cập
- Validation đầu vào đầy đủ
- Tránh reentrancy attacks
- Safe math operations
- Sanitization HTML để tránh XSS
- Validation dữ liệu phía client
- Secure communication với blockchain
- IPFS content verification
-
Không thể kết nối ví
- Kiểm tra MetaMask đã cài đặt
- Đảm bảo đã thêm BSC network
- Kiểm tra kết nối internet
-
Lỗi camera không hoạt động
- Sử dụng HTTPS hoặc localhost
- Cho phép quyền truy cập camera
- Sử dụng tùy chọn tải file ảnh
-
Lỗi IPFS
- Kiểm tra kết nối IPFS gateway
- Thử gateway khác
- Kiểm tra file size limits
-
Lỗi Smart Contract
- Kiểm tra contract address
- Xác nhận network đúng
- Kiểm tra gas fees
Kích hoạt debug mode bằng cách thêm ?debug=true vào URL:
http://localhost:8000/index.html?debug=true
- Fork repository
- Tạo feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'Add some AmazingFeature') - Push to branch (
git push origin feature/AmazingFeature) - Tạo Pull Request
Dự án này được phân phối dưới giấy phép MIT. Xem file LICENSE để biết thêm thông tin.
- Email: nguyenanhtu10203@gmail.com
- Phone: 0339010737
AgriTrace - Minh bạch từ trang trại đến bàn ăn 🌱