Skip to content

Nathansnmmer/Secondhand-Dapp

 
 

Repository files navigation

校园二手交易平台 (Campus Second-Hand Trading Platform)

基于区块链Web3技术的校园二手交易平台,提供了安全、透明的二手物品交易环境。

项目概述

本项目是一个去中心化的校园二手交易应用(DApp),基于以太坊区块链技术实现。通过智能合约确保交易的安全性和透明度,为校园用户提供可靠的二手物品交易平台。

技术栈

  • 前端:React.js
  • 智能合约:Solidity
  • 开发工具:Hardhat
  • 区块链交互:ethers.js
  • Web3集成:Web3.js

系统架构

项目分为两个主要部分:

  1. 智能合约后端

    • Merchant:商家合约,管理商品、评价和交易
    • MerchantList:管理所有商家账户
    • Utils:提供通用工具函数
  2. React前端应用

    • 登录注册系统
    • 商家管理界面
    • 用户购物界面
    • 管理员监控界面

主要功能

用户功能

  • 浏览所有在售商品
  • 按类别筛选商品
  • 查看商品详情
  • 购买商品
  • 对商品进行评价
  • 查看购买历史

商家功能

  • 商品管理(添加、编辑、下架)
  • 查看销售统计
  • 管理店铺信息
  • 查看商品评价

管理员功能

  • 监控交易
  • 管理用户和商家账户
  • 系统维护

运行指南

智能合约部署

首先进入项目根目录:

# 下载所有hardhat依赖
npm i

# 编译合约
npx hardhat compile

# 部署合约并写入文件
npx hardhat run deploy.js --network localhost

# 测试合约
npx hardhat test ./test.js

前端应用启动

进入前端应用目录:

cd campus-second-hand/

# 下载所有react依赖
npm i

# 启动开发服务器
npm start

应用将在 http://localhost:3000 启动

项目结构

Secondhand-Dapp/
├── contracts/               # 智能合约代码
│   └── CampusSecondHand.sol # 主合约文件
├── scripts/                 # 部署脚本
├── campus-second-hand/      # React前端应用
│   ├── src/
│   │   ├── components/      # React组件
│   │   │   ├── Login.js     # 登录组件
│   │   │   ├── Register.js  # 注册组件
│   │   │   ├── MerchantApp.js # 商家应用
│   │   │   ├── UserApp.js   # 用户应用
│   │   │   └── AdminApp.js  # 管理员应用
│   │   ├── routes/          # 路由配置
│   │   └── contracts/       # 合约ABI
│   └── public/              # 静态资源
└── hardhat.config.js        # Hardhat配置

开发与贡献

  1. Fork 本仓库
  2. 创建你的特性分支 (git checkout -b feature/amazing-feature)
  3. 提交你的修改 (git commit -m 'Add some amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 打开一个 Pull Request

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情

About

本项目是一个去中心化的校园二手交易应用(DApp),基于以太坊区块链技术实现。通过智能合约确保交易的安全性和透明度,为校园用户提供可靠的二手物品交易平台。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 76.5%
  • Solidity 22.1%
  • HTML 1.4%