一个基于Python和Gradio的二手物品交易平台,旨在帮助大学生处理闲置物品,实现物品的循环利用。
物品复活系统是一个Web应用程序,允许用户发布、浏览和购买二手物品。系统支持多种物品类型,每种类型可以有自定义的属性字段,适合校园内的物品交换和低价转让。
- 用户注册与登录:支持用户注册,密码使用SHA256加密存储
- 双角色系统:普通用户和管理员两种角色
- 用户管理:管理员可以查看所有用户、删除普通用户、将普通用户升级为管理员
- 发布物品:用户可以发布待售或赠送的物品
- 动态类型系统:根据物品类型显示不同的属性字段
- 物品浏览:查看所有可购买的物品列表
- 物品详情:查看物品的详细信息,包括类型特定属性
- 购买功能:用户可以购买喜欢的物品
- 我的物品:查看和管理自己发布的物品,可删除未售出的物品
- 类别筛选:按物品类别筛选
- 关键字搜索:在物品名称和描述中搜索关键字
- 组合搜索:同时使用类别和关键字进行精确搜索
-
用户管理:
- 查看所有用户列表
- 删除普通用户账号
- 将普通用户升级为管理员
-
物品类型管理:
- 创建新的物品类型
- 为每个类型定义自定义属性(名称、类型、是否必填)
- 修改现有类型的名称和属性
- 删除不需要的类型
- 后端框架:Python 3.x
- Web界面:Gradio
- 数据存储:JSON文件
- 密码加密:hashlib (SHA256)
- 唯一标识:UUID
project/
├── GUI.py # Gradio用户界面
├── user.py # 用户管理模块
├── object.py # 物品管理模块
├── category.py # 物品类型管理模块
├── service.py # 业务逻辑层
├── check_user.py # 命令行界面(可选)
├── data/ # 数据存储目录
│ ├── users.json # 用户数据
│ ├── objects.json # 物品数据
│ └── categories.json # 类型数据
└── README.md # 项目说明
- Python 3.7+
- pip
- 克隆项目
git clone https://github.com/thomasWts/software_project.git
cd software_project/project- 安装依赖
pip install gradio- 运行程序
python GUI.py- 访问应用 程序启动后会自动在浏览器中打开,或手动访问显示的本地地址(通常是 http://127.0.0.1:7860)
- 注册账号:点击"注册"按钮,填写用户名、密码和联系方式
- 登录系统:使用注册的账号登录
- 登录后进入用户中心
- 点击"发布物品"
- 填写物品信息:
- 物品名称(必填)
- 物品说明
- 选择物品类别
- 根据类别填写特定属性(JSON格式)
- 填写联系信息(地址、电话、邮箱)
- 设置价格(0表示免费赠送)
- 点击"发布物品"
- 点击"浏览物品"
- 可以使用搜索功能:
- 选择类别筛选
- 输入关键字搜索
- 查看物品列表,记下想要的物品序号
- 输入序号查看详情
- 点击"确认购买"完成交易
管理员登录后可以看到"管理员控制台"按钮:
- 用户管理标签页:管理所有用户
- 物品类型管理标签页:创建和管理物品类型
系统预设了以下物品类型:
-
食品
- 保质期(日期类型)
- 数量(数字类型)
-
书籍
- 作者(文本类型)
- 出版社(文本类型)
-
工具
- 品牌(文本类型)
- 成色(文本类型)
-
其他
- 无特定属性
管理员可以随时添加新类型或修改现有类型。
所有数据以JSON格式存储在 data/ 目录下:
users.json:用户账号信息objects.json:物品信息categories.json:物品类型定义
- ✅ 密码使用SHA256加密存储,不存储明文密码
- ✅ 每个用户和物品都有唯一的UUID标识
- ✅ 权限验证:管理员功能只有管理员可以访问
- ✅ 删除保护:不能删除管理员账号
- 首次运行时会自动创建
data/目录和必要的数据文件 - 物品的类别特定属性需要使用JSON格式输入,例如:
{"保质期": "2025-12-31", "数量": "10"} - 只有物品状态为"可购买"时才能被删除
- 购买后的物品不能被删除
- 项目开发者:Thomas
本项目仅供学习和交流使用。
如有问题或建议,欢迎通过GitHub Issues反馈。
让闲置物品重获新生,让校园生活更加环保! 🌱