You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
wwj 4834472902
.
1 month ago
doc . 1 month ago
model . 1 month ago
other . 1 month ago
src add “src” 1 month ago
README.md add “README.md” 1 month ago

README.md

校园二手物品交易系统

项目简介

校园二手物品交易系统是一个基于三层架构(界面交互 - 逻辑处理 - 数据存储的Web应用为校园用户提供二手物品交易服务。系统支持用户注册登录、物品管理、智能匹配、交易流程等核心功能。

系统架构

三层架构设计

  1. 界面层UI Layer

    • 位置:templates/routes/
    • 功能接收用户输入展示界面处理HTTP请求
    • 主要文件:
      • templates/auth/ - 注册、登录界面
      • templates/item/ - 物品管理界面
      • templates/match/ - 智能匹配界面
      • templates/trade/ - 交易界面
      • routes/*_routes.py - 路由处理
  2. 业务逻辑层Service Layer

    • 位置:services/
    • 功能:处理核心业务逻辑,调用数据层
    • 主要模块:
      • services/auth_service.py - 认证服务
      • services/item_service.py - 物品管理服务
      • services/match_service.py - 智能匹配服务
      • services/trade_service.py - 交易服务
  3. 数据层Data Layer

    • 位置:models/dao/
    • 功能:数据模型定义和数据访问操作
    • 主要文件:
      • models/user.py - 用户模型T_User
      • models/item.py - 物品模型T_Item
      • models/order.py - 订单模型T_Order
      • dao/user_dao.py - 用户数据访问
      • dao/item_dao.py - 物品数据访问
      • dao/order_dao.py - 订单数据访问

核心功能

1. 用户认证功能

  • 注册:手机号注册、密码设置、短信验证码验证
  • 登录:账号密码校验
  • 注册成功跳转登录界面,登录成功进入物品管理主界面

2. 物品管理功能

  • 发布物品:填写名称、价格、功能描述、交易类型,上传图片
  • 编辑物品:修改图片、价格、类型等信息
  • 系统校验物品状态并更新数据

3. 智能匹配功能

  • 买家触发匹配后,系统调取用户信息和物品信息
  • 通过匹配算法精准推荐符合需求的物品
  • 信息不全时提示完善

4. 交易执行功能

  • 买家查阅物品详情
  • 选择交易方式(全款/分期)、取件方式、支付时长和支付方式
  • 提交订单后系统校验物品可交易状态
  • 生成订单并展示结果

技术栈

  • 后端框架Flask 2.3.3
  • 数据库SQLite使用SQLAlchemy ORM
  • 前端HTML + CSS + JavaScript
  • 密码加密Werkzeug

安装和运行

1. 安装依赖

pip install -r requirements.txt

2. 运行应用

python app.py

3. 访问系统

打开浏览器访问:http://localhost:5000

项目结构

xyeswpjy/
├── app.py                 # 主应用入口
├── config.py             # 配置文件
├── database.py           # 数据库初始化
├── requirements.txt      # 依赖包列表
├── README.md            # 项目说明文档
├── models/              # 数据模型层
│   ├── __init__.py
│   ├── user.py          # 用户模型
│   ├── item.py          # 物品模型
│   └── order.py         # 订单模型
├── dao/                 # 数据访问层
│   ├── __init__.py
│   ├── user_dao.py      # 用户数据访问
│   ├── item_dao.py      # 物品数据访问
│   └── order_dao.py     # 订单数据访问
├── services/            # 业务逻辑层
│   ├── __init__.py
│   ├── auth_service.py  # 认证服务
│   ├── item_service.py  # 物品管理服务
│   ├── match_service.py # 智能匹配服务
│   └── trade_service.py # 交易服务
├── routes/              # 路由层(界面层后端)
│   ├── auth_routes.py   # 认证路由
│   ├── item_routes.py   # 物品管理路由
│   ├── match_routes.py  # 智能匹配路由
│   └── trade_routes.py  # 交易路由
├── templates/           # 前端界面(界面层前端)
│   ├── base.html        # 基础模板
│   ├── index.html       # 首页
│   ├── auth/            # 认证界面
│   │   ├── register.html
│   │   └── login.html
│   ├── item/            # 物品管理界面
│   │   ├── manage.html
│   │   └── detail.html
│   ├── match/           # 智能匹配界面
│   │   └── match.html
│   └── trade/           # 交易界面
│       ├── trade.html
│       └── orders.html
└── static/              # 静态文件
    ├── css/
    │   └── style.css    # 样式文件
    └── uploads/         # 上传文件目录

数据库设计

T_User用户表

  • id: 主键
  • username: 用户名(唯一)
  • phone: 手机号(唯一)
  • password_hash: 密码哈希
  • nickname: 昵称
  • email: 邮箱
  • created_at: 创建时间
  • updated_at: 更新时间

T_Item物品表

  • id: 主键
  • name: 物品名称
  • price: 价格
  • description: 物品描述
  • trade_type: 交易类型sale/rent/exchange
  • image_url: 图片路径
  • status: 物品状态available/sold/reserved
  • seller_id: 卖家ID外键
  • created_at: 创建时间
  • updated_at: 更新时间

T_Order订单表

  • id: 主键
  • item_id: 物品ID外键
  • buyer_id: 买家ID外键
  • payment_method: 支付方式full/installment
  • pickup_method: 取件方式pickup/delivery
  • payment_duration: 支付时长(天)
  • total_amount: 总金额
  • status: 订单状态pending/completed/cancelled
  • created_at: 创建时间
  • updated_at: 更新时间

系统流程

注册流程

  1. 用户输入信息(用户名、手机号、密码、验证码等)
  2. 界面层提交请求
  3. 认证控制模块调用用户服务
  4. 校验信息格式与唯一性
  5. 创建用户数据
  6. 返回注册结果并跳转登录

登录流程

  1. 用户输入账号密码
  2. 界面层提交请求
  3. 认证控制模块查询用户数据
  4. 校验账号有效性
  5. 返回登录结果,成功则跳转物品管理界面

物品发布/编辑流程

  1. 用户选择功能(发布/编辑)
  2. 物品管理模块调用物品服务
  3. 校验物品状态
  4. 新增或更新物品数据
  5. 返回操作结果

智能匹配流程

  1. 用户触发匹配
  2. 智能匹配模块调取用户与物品数据
  3. 执行匹配算法
  4. 返回匹配结果并展示

交易流程

  1. 用户提交交易请求
  2. 交易模块调取用户与物品数据
  3. 校验物品可交易性
  4. 创建订单
  5. 返回交易结果(成功/失败)

注意事项

  1. 短信验证码:当前为模拟实现,实际部署时需要对接真实的短信服务
  2. 文件上传:上传的文件保存在static/uploads/目录下
  3. 数据库使用SQLite作为默认数据库首次运行会自动创建数据库文件campus_trade.db
  4. 会话管理使用Flask的session进行用户状态管理

开发说明

  • 系统采用三层架构,便于维护和扩展
  • 遵循MVC设计模式职责分离明确
  • 数据访问层提供统一的数据操作接口
  • 业务逻辑层处理所有业务规则和校验
  • 界面层负责用户交互和结果展示

许可证

本项目为课程设计项目,仅用于学习和教学目的。