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.
|
|
1 month ago | |
|---|---|---|
| doc | 1 month ago | |
| model | 1 month ago | |
| other | 1 month ago | |
| src | 1 month ago | |
| README.md | 1 month ago | |
README.md
校园二手物品交易系统
项目简介
校园二手物品交易系统是一个基于三层架构(界面交互 - 逻辑处理 - 数据存储)的Web应用,为校园用户提供二手物品交易服务。系统支持用户注册登录、物品管理、智能匹配、交易流程等核心功能。
系统架构
三层架构设计
-
界面层(UI Layer)
- 位置:
templates/、routes/ - 功能:接收用户输入,展示界面,处理HTTP请求
- 主要文件:
templates/auth/- 注册、登录界面templates/item/- 物品管理界面templates/match/- 智能匹配界面templates/trade/- 交易界面routes/*_routes.py- 路由处理
- 位置:
-
业务逻辑层(Service Layer)
- 位置:
services/ - 功能:处理核心业务逻辑,调用数据层
- 主要模块:
services/auth_service.py- 认证服务services/item_service.py- 物品管理服务services/match_service.py- 智能匹配服务services/trade_service.py- 交易服务
- 位置:
-
数据层(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: 更新时间
系统流程
注册流程
- 用户输入信息(用户名、手机号、密码、验证码等)
- 界面层提交请求
- 认证控制模块调用用户服务
- 校验信息格式与唯一性
- 创建用户数据
- 返回注册结果并跳转登录
登录流程
- 用户输入账号密码
- 界面层提交请求
- 认证控制模块查询用户数据
- 校验账号有效性
- 返回登录结果,成功则跳转物品管理界面
物品发布/编辑流程
- 用户选择功能(发布/编辑)
- 物品管理模块调用物品服务
- 校验物品状态
- 新增或更新物品数据
- 返回操作结果
智能匹配流程
- 用户触发匹配
- 智能匹配模块调取用户与物品数据
- 执行匹配算法
- 返回匹配结果并展示
交易流程
- 用户提交交易请求
- 交易模块调取用户与物品数据
- 校验物品可交易性
- 创建订单
- 返回交易结果(成功/失败)
注意事项
- 短信验证码:当前为模拟实现,实际部署时需要对接真实的短信服务
- 文件上传:上传的文件保存在
static/uploads/目录下 - 数据库:使用SQLite作为默认数据库,首次运行会自动创建数据库文件
campus_trade.db - 会话管理:使用Flask的session进行用户状态管理
开发说明
- 系统采用三层架构,便于维护和扩展
- 遵循MVC设计模式,职责分离明确
- 数据访问层提供统一的数据操作接口
- 业务逻辑层处理所有业务规则和校验
- 界面层负责用户交互和结果展示
许可证
本项目为课程设计项目,仅用于学习和教学目的。