Dự án này là một ứng dụng phi tập trung (DApp) dành cho lĩnh vực chăm sóc sức khỏe, cho phép bệnh nhân và bác sĩ tương tác hiệu quả. Bệnh nhân có thể khám bệnh, gửi hồ sơ bệnh án qua IPFS, và bác sĩ có thể truy cập hồ sơ bệnh án khi được cấp quyền.
- Đăng ký: Bệnh nhân và bác sĩ có thể tạo tài khoản.
- Khám bệnh: Bệnh nhân thực hiện khám bệnh và gửi hồ sơ (ảnh) cho bác sĩ.
- Quản lý hồ sơ: Bác sĩ có thể truy cập hồ sơ bệnh án khi được cấp quyền.
- Đánh giá bác sĩ: Bệnh nhân có thể đánh giá bác sĩ sau khi khám.
- Crowdfunding: Bác sĩ có rating từ 4 sao trở lên có thể mở crowdfunding.
- Bệnh nhân và bác sĩ đăng ký tài khoản.
- Bệnh nhân thực hiện chức năng khám bệnh và gửi ảnh qua cho bác sĩ.
- Sau khi kết thúc khám bệnh, bác sĩ sẽ không được truy cập vào mã hash IPFS của bệnh nhân đó nữa.
- Bệnh nhân có thể xem rating của bác sĩ và đánh giá sau khi khám.
- Bác sĩ có thể mở crowdfunding nếu có rating trên 4 sao.
- Deploy trên Layer 1: Triển khai hợp đồng
Crowdfunding
vàDataTransfer
. - Deploy trên Layer 2: Sau khi hoàn thành trên Layer 1, tiến hành triển khai trên Layer 2.
- Tích hợp chức năng upload và lưu trữ hồ sơ bệnh án lên IPFS.
- Cải tiến giao diện người dùng để đảm bảo dễ sử dụng và phù hợp với logic ứng dụng.
- Sử dụng các thiết bị khám bệnh để truyền trực tiếp các thông số vào hồ sơ của bệnh nhân.
- Testing/Deploying/Developing Contracts: Foundry
- Frameworks: React, Ethers, zk-ethers, Express, IPFS
- Languages: TypeScript, Solidity
- Sau khi hoàn thành các phần trên, quay lại để tiến hành testing và thêm Chainlink cùng OpenZeppelin vào dự án.
Foundry is a blazing fast, portable and modular toolkit for Ethereum application development written in Rust.
Foundry consists of:
- Forge: Ethereum testing framework (like Truffle, Hardhat and DappTools).
- Cast: Swiss army knife for interacting with EVM smart contracts, sending transactions and getting chain data.
- Anvil: Local Ethereum node, akin to Ganache, Hardhat Network.
- Chisel: Fast, utilitarian, and verbose solidity REPL.
$ forge build
$ forge test
$ forge fmt
$ forge snapshot
$ anvil
$ forge script script/Counter.s.sol:CounterScript --rpc-url <your_rpc_url> --private-key <your_private_key>
$ cast <subcommand>
$ forge --help
$ anvil --help
$ cast --help