Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

物品复活系统 (Item Revival System)

一个基于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

安装步骤

  1. 克隆项目
git clone https://github.com/thomasWts/software_project.git
cd software_project/project
  1. 安装依赖
pip install gradio
  1. 运行程序
python GUI.py
  1. 访问应用 程序启动后会自动在浏览器中打开,或手动访问显示的本地地址(通常是 http://127.0.0.1:7860)

使用说明

首次使用

  1. 注册账号:点击"注册"按钮,填写用户名、密码和联系方式
  2. 登录系统:使用注册的账号登录

发布物品

  1. 登录后进入用户中心
  2. 点击"发布物品"
  3. 填写物品信息:
    • 物品名称(必填)
    • 物品说明
    • 选择物品类别
    • 根据类别填写特定属性(JSON格式)
    • 填写联系信息(地址、电话、邮箱)
    • 设置价格(0表示免费赠送)
  4. 点击"发布物品"

浏览和购买物品

  1. 点击"浏览物品"
  2. 可以使用搜索功能:
    • 选择类别筛选
    • 输入关键字搜索
  3. 查看物品列表,记下想要的物品序号
  4. 输入序号查看详情
  5. 点击"确认购买"完成交易

管理员功能

管理员登录后可以看到"管理员控制台"按钮:

  • 用户管理标签页:管理所有用户
  • 物品类型管理标签页:创建和管理物品类型

默认物品类型

系统预设了以下物品类型:

  1. 食品

    • 保质期(日期类型)
    • 数量(数字类型)
  2. 书籍

    • 作者(文本类型)
    • 出版社(文本类型)
  3. 工具

    • 品牌(文本类型)
    • 成色(文本类型)
  4. 其他

    • 无特定属性

管理员可以随时添加新类型或修改现有类型。

数据存储

所有数据以JSON格式存储在 data/ 目录下:

  • users.json:用户账号信息
  • objects.json:物品信息
  • categories.json:物品类型定义

安全特性

  • ✅ 密码使用SHA256加密存储,不存储明文密码
  • ✅ 每个用户和物品都有唯一的UUID标识
  • ✅ 权限验证:管理员功能只有管理员可以访问
  • ✅ 删除保护:不能删除管理员账号

注意事项

  1. 首次运行时会自动创建 data/ 目录和必要的数据文件
  2. 物品的类别特定属性需要使用JSON格式输入,例如:{"保质期": "2025-12-31", "数量": "10"}
  3. 只有物品状态为"可购买"时才能被删除
  4. 购买后的物品不能被删除

开发团队

  • 项目开发者:Thomas

许可证

本项目仅供学习和交流使用。

联系方式

如有问题或建议,欢迎通过GitHub Issues反馈。


让闲置物品重获新生,让校园生活更加环保! 🌱

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages