FABRICVERSE是一个创新的服装产业元宇宙平台,专注于实物资产(RWA)的数字化和交易。该平台允许时尚品牌将实体服装产品通过区块链技术进行数字化,并创建可交易的数字资产,为设计师和收藏家提供一个安全、透明的交易生态系统。
- 多角色支持:买家、品牌租户和平台管理员
- Web3钱包集成:支持以太坊和波场(TRON)区块链
- 多语言支持:中文、英文、日文和韩文
- 虚拟代币系统:用于平台内资产交易
- 品牌验证机制:确保平台上的品牌真实可信
- RWA资产数字化:实物资产与数字通证的绑定
- 前端:React + TypeScript + Vite
- 样式:Tailwind CSS + ShadcnUI
- 状态管理:React Query
- Web3集成:thirdweb SDK, ethers.js, TronWeb
- 路由:wouter
- 表单处理:React Hook Form + Zod
- 国际化:i18next
- Node.js 20.x 或更高版本
- npm 10.x 或更高版本
- 克隆项目代码
git clone <repository-url>
cd fabricverse- 安装依赖
npm install- 设置环境变量
创建.env文件并配置以下环境变量:
# 会话密钥 (必需)
SESSION_SECRET=your_strong_session_secret
# 区块链相关配置 (可选)
CHAIN_ID=1
RPC_URL=https://mainnet.infura.io/v3/your_infura_key
# 虚拟代币兑换比率 (可选,默认值为1)
TOKEN_EXCHANGE_RATE=100
- 启动开发服务器
npm run dev- 构建生产版本
npm run build- 启动生产服务器
npm start项目使用内存存储数据,数据模型如下:
{
id: number; // 用户ID
username: string; // 用户名
email: string; // 电子邮箱
password: string; // 密码(哈希存储)
role: 'buyer' | 'tenant' | 'admin'; // 用户角色
walletAddress?: string; // 区块链钱包地址
walletType?: 'ethereum' | 'tron'; // 钱包类型
tokenBalance: number; // 平台代币余额
createdAt: Date; // 创建时间
verified: boolean; // 是否验证
verificationStatus?: 'pending' | 'approved' | 'rejected'; // 租户验证状态
companyName?: string; // 公司名称(租户)
companyRegistrationNumber?: string; // 公司注册号(租户)
companyAddress?: string; // 公司地址(租户)
contactPerson?: string; // 联系人(租户)
contactPhone?: string; // 联系电话(租户)
}{
id: number; // 品牌ID
name: string; // 品牌名称
description: string; // 品牌描述
logoUrl: string; // 品牌logo URL
website?: string; // 品牌网站
tenantId: number; // 关联租户ID
verified: boolean; // 是否验证
createdAt: Date; // 创建时间
socialMedia?: { // 社交媒体信息
instagram?: string;
twitter?: string;
facebook?: string;
};
}{
id: number; // 资产ID
name: string; // 资产名称
description: string; // 资产描述
imageUrl: string; // 资产图片URL
price: number; // 资产价格
brandId: number; // 关联品牌ID
category: string; // 资产类别
blockchain: string; // 区块链网络
tokenId?: string; // 区块链Token ID
limited: boolean; // 是否限量版
editionNumber?: number; // 版号
totalEditions?: number; // 总版数
available: boolean; // 是否可购买
createdAt: Date; // 创建时间
metadata?: any; // 额外元数据
}{
id: number; // 用户资产ID
userId: number; // 用户ID
assetId: number; // 资产ID
purchaseDate: Date; // 购买日期
purchasePrice: number; // 购买价格
transactionHash?: string; // 交易哈希
}平台预设了三种角色的测试账户,可用于功能测试:
| 角色 | 用户名 | 密码 | 说明 |
|---|---|---|---|
| 买家 | buyer@example.com | buyerpass | 普通用户账户,可浏览和购买资产 |
| 租户 | tenant@example.com | tenantpass | 品牌租户账户,可创建品牌和资产 |
| 管理员 | admin@example.com | adminpass | 管理员账户,可管理所有用户和内容 |
- 买家用户登录后,导航栏会显示虚拟钱包余额
- 点击余额可打开充值面板,增加代币余额
- 浏览资产时,可使用虚拟代币购买喜欢的数字资产
- 所有交易记录将在用户个人资料页面中可见
- 使用租户账户登录系统
- 完善公司资料并提交验证申请
- 等待管理员审核通过
- 创建品牌信息
- 为品牌添加数字资产
在登录后,点击右上角的"连接钱包"按钮,选择钱包类型(以太坊或波场)并按照提示完成连接。
注册普通账户后,在设置页面申请角色升级,填写必要的公司信息并提交审核。
在个人资料页面的"我的收藏"标签中可以查看所有已购买的数字资产。
在client/src/services/web3Service.ts中添加新的区块链钱包服务类,实现IWeb3Service接口:
class NewBlockchainService implements IWeb3Service {
// 实现接口方法
}
// 在Web3ServiceFactory中注册
static getService(type: WalletType): IWeb3Service {
// 添加新的钱包类型支持
}修改client/src/pages/brand-details-page.tsx文件,添加新的品牌展示组件和功能。
- Fork项目
- 创建功能分支 (
git checkout -b feature/your-feature) - 提交更改 (
git commit -m 'Add some feature') - 推送到分支 (
git push origin feature/your-feature) - 提交Pull Request