Certificate-Management
荣誉证书管理系统
一款功能完整、界面精美的荣誉证书管理桌面应用。
支持荣誉证书的全生命周期管理:从录入、统计分析、成员管理到附件管理,一应俱全。
当前版本: v1.4.0(2025-12-18)
📖 目录导航 (点击展开)
✨ 核心特性
⚡ 极速检索500ms 防抖全文检索 |
📊 数据可视化8 张动态指标卡 |
🧭 丝滑体验页面异步懒加载 |
🛡️ 数据安全本地 SQLite 存储 |
🧠 智能补全专业/学院自动匹配 |
🗑️ 后悔药回收站机制 |
🎨 炫彩主题深色/浅色模式 |
🛠️ 运维工具一键清理日志/备份 |
🎯 功能详情
- 首页: 快速导航与最近动态,一键直达常用功能。
- 仪表盘: 8 个梯度指标卡 + 饼/柱图可视化 + 最近荣誉速览。
- 总览: FTS5 全文搜索(比赛名/证书号/成员)+ 筛选排序分页,支持编辑与批量操作。
- 录入: 卡片式表单,多成员动态管理;集成专业/学校智能搜索(中文/拼音/代码);支持一键 AI 识别证书(图片/PDF)。
- 成员管理: 成员库维护与详情,10 字段监控与快速修改。
- 回收站: 已删除记录可恢复/彻底删除,双重确认。
- 系统设置: 主题/备份/日志/索引维护与清理工具,自定义开关管理,导入模板下载;AI 与 MCP 配置入口。
- MCP 接入: 内置本地 MCP(stdio/SSE)与可选 Web 控制台,默认只读,支持 PII 脱敏与写入开关。
🛠️ 技术栈
| 核心框架 | 数据存储 | 工具链 |
|---|---|---|
- AI 证书识别:OpenAI 兼容 API(Chat Completions/Responses)+ PyMuPDF(PDF 渲染)+ Pydantic(结构化解析)
- MCP:
mcp(FastMCP),支持 stdio/SSE;可选gradioWeb 控制台 - 日志:
loguru(应用日志与 MCP 进程日志输出到logs/) - 类型检查:
pyright(标准模式)+ruff(风格/未使用项)
📸 界面预览
💡 提示: 点击图片可查看大图
🏠 首页 快速导航与最近动态 |
📊 仪表盘 指标卡 + 统计图表 |
👀 总览页 FTS5 搜索 + 筛选排序 |
📝 录入页 成员卡片式表单 + AI 识别 |
👥 成员管理 10 字段监控与详情 |
⚙️ 设置页 主题/备份/清理/日志 |
🚀 快速开始
📥 安装步骤
克隆仓库
1
2git clone https://github.com/RE-TikaRa/Certificate-Management.git
cd Certificate-Management安装依赖 (推荐使用
uv)1
2
3
4
5# 安装 uv (如果尚未安装)
# pip install uv
# 同步环境
uv sync启动应用
1
2
3
4
5# Windows 快捷启动
./main.bat
# 或使用 uv 启动
uv run python -m src.main
🛠️ 常用命令
| 操作 | 命令 | 说明 |
|---|---|---|
| 运行 | uv run python -m src.main |
启动主程序 |
| 调试 | uv run python -m src.main --debug |
开启调试日志 |
| 检查 | uv run ruff check . |
代码 Lint 检查 |
| 格式化 | uv run ruff format . |
代码自动格式化 |
| 类型检查 | uv run python -m pyright |
Pyright 标准模式 |
| 语法检查 | uv run python -m py_compile src/ |
基础语法编译检查 |
| MCP 服务 | uv run certificate-mcp |
启动 MCP(默认 stdio,只读) |
| MCP SSE | CERT_MCP_TRANSPORT=sse uv run certificate-mcp |
启动 SSE(默认 http://127.0.0.1:8000/sse;推荐用设置页随软件启动) |
| MCP Web | uv run certificate-mcp-web |
启动本地 Web 控制台(需安装可选依赖;默认 http://127.0.0.1:7860) |
🧾 AI 证书识别
AI 证书识别用于“荣誉录入”页面的一键识别:从证书图片/PDF 自动抽取 比赛名称、获奖日期、赛事级别、奖项等级、证书编号、成员姓名,并在预览对话框中确认后再写入表单。
⚙️ 配置与模型
- 打开 系统设置 → AI 证书识别,勾选“启用 AI 证书识别”
- 配置一个提供商(Provider)
- API 地址:OpenAI 兼容地址(如
https://api.openai.com或你的兼容中转) - API Key:支持多 Key,程序会按请求轮换(见下文)
- 模型:可手动填写模型 ID;若你的服务支持
/v1/models,可在设置页刷新/选择 - PDF 页数:1~10(PDF 会渲染前 N 页作为图片参与识别)
- API 地址:OpenAI 兼容地址(如
- 点击“测试联通”验证配置(会发起最小请求)
说明(按当前实现):
- 支持文件:
.pdf.png.jpg.jpeg.webp - Key 轮换:每次调用(识别证书、刷新模型、测试联通)都会轮到下一个 Key;当前不会在失败时自动切 Key 重试
- OpenAI 官方
api.openai.com:会走responses接口;PDF 会以文件方式上传,图片会以单张图片方式上传 - 兼容服务:走
/v1/chat/completions;PDF 会按“PDF 页数”渲染多页图片后发送
🧾 使用流程
- 在 荣誉录入 页点击顶部“AI 识别证书”
- 选择证书文件后,程序会自动将其加入附件并开始识别
- 在“AI 识别预览”中确认/修改结果后应用到表单
📥 导入 / 导出(CSV/XLSX)
- 入口:系统设置 → 导入/导出
- 导入:支持 CSV/XLSX;表头需与模板一致;可选字段 附件路径(用
;分隔多个文件的绝对路径) - 导出:导出文件包含 附件数量 与 附件路径;若要回导请确保附件文件在原路径可访问(跨机器需自行拷贝并修正路径)
🤖 MCP 接入(本地)
本项目内置了 MCP (Model Context Protocol) 服务,允许 AI Agent(如 Claude Desktop、Cursor 等)安全地读取本地荣誉数据与附件。
🔌 连接方式
stdio 模式(推荐)
- 适用场景:本地客户端直接拉起进程(无需占用端口)。
- 启动命令:
uv run certificate-mcp - 配置示例:见下文“客户端配置示例”。
SSE 模式(HTTP 服务)
- 适用场景:本机调试(HTTP)。
- 地址:
http://127.0.0.1:8000/sse - 启动方式:
- 自动(推荐):在“设置页 → MCP 服务”中开启“随软件启动 MCP”。
- 手动:
CERT_MCP_TRANSPORT=sse uv run certificate-mcp
- 日志:
logs/mcp_sse.log - 注意:服务端强制本地绑定,
CERT_MCP_HOST只能是127.0.0.1/localhost/::1,请勿暴露到公网。
Windows PowerShell 手动启动命令
1
2
3
4$env:CERT_MCP_TRANSPORT = "sse"
$env:CERT_MCP_HOST = "127.0.0.1"
$env:CERT_MCP_PORT = "8000"
uv run certificate-mcpWeb 控制台(调试用)
- 功能:提供一个 Web 界面来测试 MCP 工具调用。
- 安装:
uv sync --group mcp-web(或在设置页点击安装)。 - 启动:
uv run certificate-mcp-web(默认访问http://127.0.0.1:7860)。 - 说明:无登录,仅用于本机调试;如关闭后端口仍占用见“故障排查”。
🛡️ 权限与安全
- 默认只读:默认不允许写入数据库或修改文件。如需开启写入(仅限本地),请在设置页勾选或设置环境变量
CERT_MCP_ALLOW_WRITE=1。 - 隐私保护:默认开启 PII 脱敏(
CERT_MCP_REDACT_PII=1),自动隐藏身份证号与手机号中间位。 - 附件限额:单次读取附件最大 1MB(可配置
CERT_MCP_MAX_BYTES)。 - 网络安全:服务默认绑定
127.0.0.1,请勿暴露到公网。
🛠️ 能力概览
- Tools (工具):
list_awards/get_award/search_awards:查询荣誉记录。list_members/get_member:查询成员信息。read_attachment:读取附件内容(支持文本提取)。health:健康检查。
- Resources (资源):
docs://readme/docs://agents:读取项目 README/AGENTS 指南。schema://models:查看数据库模型定义。templates://awards_csv:获取导入模板。
⚙️ 常用环境变量
| 变量名 | 说明 | 默认值 |
|---|---|---|
CERT_MCP_TRANSPORT |
传输模式 (stdio/sse) |
stdio |
CERT_MCP_HOST |
SSE Host(仅允许本地) | 127.0.0.1 |
CERT_MCP_PORT |
SSE 端口 | 8000 |
CERT_MCP_ALLOW_WRITE |
允许写入 (0/1) |
0 |
CERT_MCP_REDACT_PII |
敏感信息脱敏 (0/1) |
1 |
CERT_MCP_MAX_BYTES |
单次附件读取上限(字节) | 1048576 |
CERT_MCP_DEBUG |
输出调试错误细节 (0/1) |
0 |
CERT_MCP_WEB_HOST |
Web 控制台 Host | 127.0.0.1 |
CERT_MCP_WEB_PORT |
Web 控制台端口 | 7860 |
CERT_MCP_WEB_INBROWSER |
是否自动打开浏览器 (0/1) |
1 |
📎 客户端配置示例 (Claude Desktop / Cursor)
stdio 模式 (推荐):
1 | { |
SSE 模式:
1 | { |
📂 文件目录说明
点击展开完整目录树
1 | Certificate-Management/ |
🏗️ 项目架构
1 | flowchart TD |
架构说明:本项目采用经典的三层架构(表现层、业务层、数据层),各层职责分明,通过依赖注入(DI)容器
AppContext进行解耦。
💾 数据模型
查看详细数据库表结构
🏆 荣誉记录 (Awards)
| 字段 | 类型 | 说明 |
|---|---|---|
id |
Integer | 主键 |
competition_name |
String | 比赛名称 |
award_date |
Date | 获奖日期 |
level |
String | 级别(国家/省/校等) |
rank |
String | 等级(一/二/三/优秀) |
certificate_code |
String | 证书编号 |
remarks |
Text | 备注 |
attachment_folder |
String | 附件目录相对路径 |
deleted / deleted_at |
Bool/DateTime | 软删除标记 |
created_at / updated_at |
DateTime | 时间戳 |
award_members |
Relation | 荣誉成员快照(AwardMember,级联删除) |
attachments |
Relation | 附件(级联删除) |
🧩 荣誉成员快照 (AwardMembers)
| 字段 | 类型 | 说明 |
|---|---|---|
id |
Integer | 主键 |
award_id |
FK | 关联荣誉 |
member_id |
FK / Nullable | 关联成员库(可空;未入库则为空) |
member_name |
String | 当时录入的姓名快照(必填) |
sort_order |
Integer | 成员顺序 |
👤 参与成员 (TeamMembers)
| 字段 | 类型 | 说明 |
|---|---|---|
id |
Integer | 主键 |
name |
String | 姓名 |
gender |
String | 性别 |
id_card |
String | 身份证号(唯一) |
phone |
String | 手机号 |
student_id |
String | 学号(唯一) |
email |
String | 邮箱 |
school / school_code |
String | 学校名称/标识码 |
major / major_code |
String | 专业名称/代码 |
class_name |
String | 班级 |
college |
String | 学院 |
pinyin |
String | 姓名拼音 |
active |
Bool | 启用状态 |
sort_index |
Integer | 排序权重 |
created_at / updated_at |
DateTime | 时间戳 |
award_associations |
Relation | 通过 AwardMember 关联荣誉(成员库可变更不影响历史快照) |
🤖 AI 提供商 (AIProviders)
| 字段 | 类型 | 说明 |
|---|---|---|
id |
Integer | 主键 |
name |
String | 提供商名称(唯一) |
api_base |
String | OpenAI 兼容 API Base |
api_keys |
Text | 多 Key(支持 `name |
model |
String | 默认模型 ID |
pdf_pages |
Integer | PDF 渲染页数(1~10) |
last_key_index |
Integer | Key 轮换索引(-1 表示未开始) |
settings.ai_active_provider_id用于标记当前激活的 provider;旧版单配置(ai_api_base/ai_api_key/ai_model)会在首次启动时迁移到默认 provider。
🏷️ 自定义开关 (CustomFlags/AwardFlagValues)
| 模型 | 关键字段 | 说明 |
|---|---|---|
CustomFlag |
key(唯一), label, enabled, default_value, sort_order |
自定义布尔开关定义(用于录入/导出/筛选) |
AwardFlagValue |
award_id, flag_key, value |
荣誉对应的开关值(与 award_id+flag_key 唯一) |
🎓 专业与学校 (Majors/Schools)
| 模型 | 关键字段 | 说明 |
|---|---|---|
Major |
name(唯一), code(唯一), pinyin, category, discipline_code/name, class_code/name, 时间戳 |
2025 本科专业目录(约 840 条) |
School |
name(唯一), code(唯一), pinyin, region, 时间戳 |
全国高校列表 |
SchoolMajorMapping |
school_name/code, major_name/code, college_name, category, discipline_*, class_* |
学校-专业-学院映射,支持代码缺失时按名称回退 |
Attachment |
award_id, stored_name, original_name, relative_path(唯一), file_md5, file_size, deleted, 时间戳 |
附件记录 |
BackupRecord / ImportJob |
路径/状态/消息/时间戳 | 备份与导入任务记录 |
(更多模型细节请查阅源码 src/data/models.py)
🔐 数据安全与备份
🛡️ 本地优先数据存于 |
🔄 自动备份支持手动/启动时/每日/每周备份;基于 SQLite |
🗑️ 回收站删除荣誉进入回收站可恢复;附件删除会移入 |
🧹 清理策略提供日志/备份清空与数据库重建(reset)工具,均带双重确认;数据库清空会重建空库并重载默认设置。 |
⚠️ 隐私提醒:请勿将
data/、backups/、attachments/、logs/、.env等敏感目录提交到版本控制系统。
🎨 主题系统
应用内置了一套精美的色彩系统,适配深色/浅色模式。
| 指标类型 | 渐变色 (Light -> Dark) | 语义 |
|---|---|---|
| 总荣誉 | 💜 #a071ff → #7b6cff |
综合实力 |
| 国家级 | 💙 #5a80f3 → #4ac6ff |
最高荣誉 |
| 省级 | 💛 #ffb347 → #ffcc33 |
中坚力量 |
| 校级 | 💚 #3ec8a0 → #45dd8e |
基础积累 |
| 一等奖 | 💠 #00b4d8 → #48cae4 |
顶尖表现 |
| 二等奖 | 💜 #b54cb8 → #d896ff |
稳定发挥 |
| 三等奖 | ❤️ #ff6b6b → #ff8787 |
鼓励奖项 |
| 优秀奖 | 🤍 #999999 → #b3b3b3 |
参与/优秀 |
🛠️ 开发指南
- 环境准备: 确保 Python 3.14+,推荐使用
uv管理虚拟环境。 - 新增页面: 继承
BasePage,在main_window.py中注册路由。 - 数据库变更: 修改
models.py,目前使用自动建表,生产环境建议引入 Alembic。 - 代码规范: 提交前请运行
ruff check和pyright。 - 版本与文档: 版本号统一来自
pyproject.toml(运行时由src/version.py读取);升级版本时请同步更新 README 顶部/更新日志与应用“关于”页文案。
🧰 故障排查
点击查看常见问题解决方案
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 启动缺少 Qt 插件 | 环境依赖不完整 | 运行 uv sync,若无效则删除 .venv 重试 |
| 界面文字乱码 | 字体缺失或编码问题 | 检查系统字体,确认未强制覆盖 QFontDatabase |
| 数据库被锁 | 异常退出导致锁文件残留 | 先关闭应用;仍锁时删除 data/awards.db-shm 和 .db-wal(恢复备份前程序会尝试清理这两类文件) |
| 导入无响应 | 模板格式错误 | 确认 CSV/XLSX 表头与模板一致,查看设置页日志 |
| MCP 连接失败 | 端口未启动/URL 错误/依赖缺失 | SSE:确认 http://127.0.0.1:8000/sse 且设置页已启动;Web:先 uv sync --group mcp-web,再启动 Web 控制台并访问 http://127.0.0.1:7860 |
| MCP Web 关闭后端口仍占用(7860) | 进程未退出/残留子进程 | 退出应用与相关终端后,用 netstat -ano | findstr :7860 查 PID,再 taskkill /PID <pid> /T /F |
| MCP SSE 启动报 host 限制 | MCP 服务仅允许本地绑定 | 将 CERT_MCP_HOST 设置为 127.0.0.1 / localhost / ::1(或直接用设置页启动) |
| AI 识别提示缺少 PDF 依赖 | 未安装 PyMuPDF | 运行 uv sync 安装依赖(需要识别 PDF 时必须) |
| AI 识别失败:Cloudflare 1010 | 网络/代理/风控拦截 | 更换网络/代理或更换中转;该错误通常与本机环境无关 |
| AI 识别失败:模型输出不是有效 JSON | 模型不按要求输出结构化结果 | 更换模型/提供商;确保模型支持图像输入,并尝试在设置页手动填写模型 ID |
| 主题不更新 | 信号未连接 | 检查 __init__ 是否连接 themeChanged 信号 |
| 附件校验失败 | 文件被占用或修改 | 检查文件权限,清空回收站后重试 |
📝 更新日志
说明:以下版本号按 GitHub
main分支提交记录分段整理(无 Tag 时以日期为准),采用 SemVer(主版本/次版本/修订号)。
v1.4.0 (2025-12-18)
- AI 证书识别
- 荣誉录入页支持一键从证书图片/PDF 抽取比赛名称、日期、级别、奖项、证书编号与成员姓名,并提供预览确认后再填充
- AI 设置页新增/完善:多 Provider 管理(名称/API 地址/模型/PDF 页数)、模型列表刷新/选择、联通测试、API Key 多 Key 轮换
- 运维与数据
- 新增数据库 reset 与自定义布尔开关批量保存,便于清理与批处理
- 修复奖项成员快照在部分路径下的赋值顺序问题
- 文档
- 修正目录锚点与奖项说明细节
提交记录(v1.4.0,共 7 条)
cde61542025-12-17 docs: 修正目录锚点与补充奖项说明47a45f02025-12-17 feat: 支持数据库 reset 与 flag 批量保存0a7abf42025-12-18 fix: 修正奖项成员快照赋值顺序9e0fde62025-12-18 feat: 增加 AI 证书识别与多 Provider 支持e70fa2c2025-12-18 fix: 优化 AI 证书按钮与模型输入兼容性c0d29122025-12-18 fix: 优化 AI 密钥表格内容居中显示8a7c2852025-12-18 refactor: 拆分 AI 设置表单结构
v1.3.1 (2025-12-17)
- 荣誉成员快照 / 可选入库
- 荣誉成员改为快照模型:荣誉始终保存
member_name,可选绑定成员库member_id,成员库变更/停用不影响历史荣誉显示 - 录入页每个成员卡片新增“加入成员库”勾选(默认关闭),不入库时仅保存姓名;总览/仪表盘/导入导出同步适配
- 荣誉成员改为快照模型:荣誉始终保存
- 性能/体验
- 页面引入懒加载占位页,并在启动后分批后台预热,显著降低首屏初始化压力
- 专业/学校搜索与仪表盘数据加载迁移到线程池异步执行,减少输入与切页时的 UI 阻塞
- 页面切换时仅在可见页面运行刷新/轮询定时器,修复“每 5 秒卡一下”的卡顿问题
- 控制台日志格式更清晰(时间+等级对齐,可选颜色),过滤第三方提示信息,Windows 启动脚本成功退出不再强制暂停
- 数据安全
- 备份改用 SQLite
backup()快照生成,避免 WAL 模式下直接复制awards.db可能导致的不一致
- 备份改用 SQLite
- 稳定性
- 修复
run_in_thread()线程池任务回调偶发丢失(worker 生命周期过短导致未回调) - 修复部分类型标注在运行时导入触发
NameError的问题(提升对不同 Python 版本的兼容性)
- 修复
- MCP
- 附件读取工具返回信息更准确,并跟随设置页配置的附件目录工作(修改目录后重启 MCP 生效)
- 工程化
- 规范化版本号管理,统一从
pyproject.toml读取,窗口标题显示版本号
- 规范化版本号管理,统一从
- 文档
- 修正 README 段落缩进与更新日志结构,补齐各版本提交记录
- 完善 MCP/AI 接入与本地安全说明(仅本地使用,保持绑定
127.0.0.1)
提交记录(v1.3.1,共 7 条)
1bb7c412025-12-17 feat: 荣誉成员支持快照与可选入库1ae54792025-12-17 feat: 优化页面加载与错误处理,提升性能ac8cc5c2025-12-17 feat: 优化日志输出与懒加载页面体验25041a02025-12-17 chore: 规范化版本号管理 (v1.3.1)f6b55c32025-12-17 feat: 优化荣誉成员快照与页面性能ef156942025-12-17 docs: 修正 README.md 段落缩进与更新日志4ed0e172025-12-17 docs: 完善 MCP/AI 接入与安全说明
v1.3.0 (2025-12-16)
- MCP 接入
- 新增本地 MCP 服务(stdio/SSE),默认只读;支持敏感信息脱敏与附件读取限额
- 新增可选 Web 控制台(Gradio),用于本机调试 MCP 输出(无登录,仅本地)
- 设置页集成 MCP 管理(随软件启动、端口/权限/脱敏配置、日志入口、Web 依赖一键安装/更新)
- 工程化与结构
- MCP 相关代码整理到
src/mcp/,统一模块命名与脚本入口(certificate-mcp/certificate-mcp-web) - MCP 进程与 Web 控制台运行日志落盘(
logs/mcp_sse.log、logs/mcp_web.log、logs/mcp_web_install.log)
- MCP 相关代码整理到
- 细节修复
- 修复导入模板与设置页布局细节,优化 MCP 说明与使用指引
提交记录(v1.3.0,共 5 条)
f6086cd2025-12-16 feat: 集成 MCP 服务及本地 Web 控制台2ed061f2025-12-16 feat: 增强 MCP 进程管理与敏感信息脱敏493d3102025-12-16 feat: 优化 MCP 说明与 Web 控制台操作5a2a9072025-12-16 refactor: MCP 相关模块目录结构调整与功能优化35f397c2025-12-16 chore: 更新版本号至 1.3.0 并补充更新日志
v1.2.0 (2025-12-14)
- 新增:自定义布尔开关(
CustomFlag/AwardFlagValue)及与荣誉记录关联 - 新增:设置页开关管理界面(改名、启用、默认值、排序、删除双重确认)
- 增强:录入页/导入导出支持开关值读写,统计与相关逻辑同步完善
提交记录(v1.2.0,共 1 条)
86f6d012025-12-14 feat: 增加自定义布尔开关及荣誉关联
v1.1.0 (2025-12-09 ~ 2025-12-10)
- 新增:批量管理(全选/反选/全不选)与成员排序优化
- 新增:荣誉/成员全文检索(FTS5)与导入流程优化
- 增强:附件去重(含按奖项限定)与备份/恢复体验优化
- 增强:主窗口导航快捷键、自动备份选项、LOGO 与文档说明完善
提交记录(v1.1.0,共 15 条)
3c1aa2f2025-12-09 feat: 批量管理与成员排序功能优化df740082025-12-09 feat: 批量管理支持全选/反选/全不选88485382025-12-09 refactor: 优化最新荣誉查询逻辑c18bc0e2025-12-09 feat: 学校与专业导入及数据模板完善cf09d342025-12-10 feat: 附件去重与备份恢复功能优化2c7ad872025-12-10 feat: 附件查重支持按奖项限定193a4cb2025-12-10 feat: 增加主窗口导航快捷键与备份自动备份选项661c30e2025-12-10 feat: 荣誉与成员全文搜索及导入优化85a4fe72025-12-10 feat: 更新 LOGO 与设置/搜索功能说明3de33e02025-12-10 docs: 优化 README LOGO 展示布局67a5bc62025-12-10 docs: 优化 README 顶部布局与徽章展示15b3aed2025-12-10 docs: 完善数据模型与目录说明901b4052025-12-10 docs: 修正 README 顶部打字动画内容编码b3616d72025-12-10 docs: 完善数据模型说明并删除测试脚本b5300692025-12-10 chore: 更新 .gitignore 及 AGENTS.md 数据目录说明
v1.0.1 (2025-12-04 ~ 2025-12-07)
- 体验优化:表单/仪表盘/列表 UI 大量调整,表格迁移至
QTableView并支持居中显示 - 主题/性能:浅色表格修复、深色背景调整、减少模糊特效避免掉帧、动画更顺滑
- 数据能力:专业库 Excel 导入与统计展示、附件表格支持拖拽添加
- 工程化:依赖管理切换为
pyproject.toml + uv,集成 Ruff/Pyright;构建系统切换为 setuptools - 稳定性:支持信号中断安全退出,修复字体重置、总览页附件显示等问题
提交记录(v1.0.1,共 61 条)
e0c1b332025-12-04 修复操作细节6e900002025-12-04 逻辑优化1b492fd2025-12-04 无更新ef0b2d42025-12-04 Remove docs folder75a69022025-12-04 feat: 添加文档导入功能和邮箱自动生成55bc0fd2025-12-04 修复小BUG5297fcf2025-12-04 修复小BUGa29a9152025-12-05 修复总览页不显示附件的BUG68318b72025-12-05 优化体验7176bd52025-12-05 加入关于页f4fa0fd2025-12-05 提供个人信息模板dc4161a2025-12-05 更新排序功能584f0492025-12-05 更新文本a8c8af52025-12-05 更新细节05d60b12025-12-05 RM更新85f6fe92025-12-05 RM更新3260af52025-12-05 fix: 移除模糊特效防止掉帧9b25efa2025-12-05 fix: 优化备份目录配置容错处理c751e232025-12-05 feat: 支持logo随主题切换69d383d2025-12-05 fix: 防止动画中卡顿47292332025-12-05 refactor: 全面替换表格为QTableView并引入模型f2363bb2025-12-05 refactor: 优化表单与仪表盘UI及交互93537a22025-12-05 refactor: 表单控件统一为qfluentwidgets组件be6c61a2025-12-05 refactor: 统一成员卡片样式为QSS卡片属性a80e6722025-12-05 refactor: 隐藏日期选择器符号按钮79b65ae2025-12-05 refactor: 优化搜索框与荣誉卡片样式48a3e172025-12-05 refactor: 设置全局字体避免警告dbc58192025-12-05 fix: 修复字体重置的问题f61e75c2025-12-05 fix: 移除弹窗模糊特效防止掉帧958aea22025-12-05 chore: 切换依赖管理为 pyproject.toml+uv6afce892025-12-05 refactor: 移除表情符号并优化注释49358ff2025-12-05 refactor: 精简注释与优化代码结构6ee169e2025-12-05 chore: 调整ruff配置项位置2d9fe942025-12-05 refactor: 统一导航方法为navigate_toc79858a2025-12-05 style: 统一代码风格与格式优化893226f2025-12-05 refactor: 优化类型导入与异常处理6905e1a2025-12-05 refactor: 统一文件操作与类型注解优化4fb64e92025-12-05 docs: 重命名 agents.md 至 AGENTS.mda3489212025-12-06 docs: 更新 AI 开发指南b3ea3432025-12-06 docs: 更新数据模型与依赖说明19096b82025-12-06 chore: 移除 ruff 配置中的 PL 规则775c69c2025-12-06 refactor: 精简条件表达式与移除无用Tag相关方法c17746a2025-12-06 feat: 集成 Pyright 类型检查支持330c9822025-12-06 refactor: 适配 PySide6 新版 API 与类型注解优化139ab0d2025-12-06 refactor: 移除 future annotations 导入66d29cc2025-12-06 refactor: 优化页面初始化与导航栏注册8e933282025-12-06 feat: 优化页面切换动画1bba1452025-12-06 style: 调整深色主题主背景色7756c102025-12-06 fix: 修复表格亮色模式6c048e02025-12-06 feat: 支持信号中断安全退出a91ebd12025-12-06 feat: 真正的 Fluent Design 切换动画57bef832025-12-06 Merge pull request #1 from zetaloop/refactorxx20e1a662025-12-07 chore: 启动脚本增加虚拟环境激活7d6b2792025-12-07 chore: 格式化依赖配置与部分代码结构a235df82025-12-07 chore: 切换构建系统为 setuptools2eeb63e2025-12-07 feat: 附件表格支持拖拽添加文件e526e912025-12-07 feat: 表格内容居中显示27755da2025-12-07 refactor: 优化类型导入与依赖07d3ccc2025-12-07 feat: 专业库支持 Excel 导入与统计展示da71f6d2025-12-07 refactor: 专业库导入脚本迁移与优化61d99e92025-12-07 refactor: 优化 test_majors.py 导入与格式
v1.0.0 (2025-12-02 ~ 2025-12-03)
- 初版完成:基础页面、主题样式与主要组件搭建
- 文档:引入
AGENTS.md,为 AI/自动化开发提供项目导航与规范
提交记录(v1.0.0,共 10 条)
e30a7732025-12-02 V1.0 创建81e64772025-12-02 添加主题样式和页面组件功能27071ef2025-12-02 Clean up: remove unused files and configure .gitignore for sensitive data2643a2d2025-12-02 chore: remove .codemap from version control9d385072025-12-02 更新细节85d8e2f2025-12-03 feat: implement comprehensive code improvementscd2214b2025-12-03 细节修复a9a6fc92025-12-03 细节修复ca924ab2025-12-03 大版本V1.0完成5d6f0192025-12-03 创建agents.md为AI开发提供便利
📈 Star History
🤝 如何贡献
非常欢迎您的贡献!请遵循以下流程:
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 提交 Pull Request
📄 许可证
本项目基于 MIT License 开源。
Author: RE-TikaRa | Powered by: PySide6 & QFluentWidgets
- 标题: Certificate-Management
- 作者: 亓翎_Re-Tikara
- 创建于 : 2026-01-03 00:01:16
- 更新于 : 2026-01-03 03:47:19
- 链接: https://re-tikara.fun/Blog/posts/6c20921f/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。