基于Go + Gin + GORM和Vue3 + TypeScript + Ant Design Vue的全栈项目管理软件。
当前版本: v0.4.12
最后更新: 2025年12月02日
📦 v0.4.12 发布说明 | 开发计划 | API文档
- 后端: Go + Gin + GORM + SQLite(支持MySQL)
- 前端: Vue 3 + TypeScript + Ant Design Vue + Vite
- 认证: 微信开放平台扫码登录
- 测试: TDD开发,单元测试覆盖率目标100%
project/
├── backend/ # Go后端
│ ├── cmd/server/ # 应用入口
│ ├── internal/ # 内部包
│ │ ├── api/ # API路由层
│ │ ├── service/ # 业务逻辑层
│ │ ├── model/ # 数据模型
│ │ ├── repository/ # 数据访问层
│ │ ├── middleware/ # 中间件
│ │ └── utils/ # 工具函数
│ ├── pkg/ # 可复用包
│ └── migrations/ # 数据库迁移
└── frontend/ # Vue3前端
└── src/
├── api/ # API接口
├── views/ # 页面组件
├── components/ # 公共组件
├── stores/ # 状态管理
└── router/ # 路由配置
- ✅ 项目初始化和基础架构
- ✅ 数据库模型设计(所有表结构)
- ✅ 微信登录集成
- ✅ JWT认证机制
- ✅ RBAC权限系统
- ✅ 系统初始化功能
- ✅ 系统初始化状态检查
- ✅ 微信配置保存(第一步)
- ✅ 微信扫码初始化(第二步:通过微信登录创建管理员)
- ✅ 密码登录初始化(第二步:通过用户名密码创建管理员)
- ✅ 初始化二维码生成
- ✅ WebSocket 扫码通知
- ✅ 静态文件服务(支持前端 SPA 路由)
- ✅ 用户管理API
- ✅ 用户CRUD操作
- ✅ 用户昵称功能(username用于登录,nickname用于显示)
- ✅ 扫码添加用户功能
- ✅ 软删除用户恢复机制
- ✅ 并发创建用户冲突处理
- ✅ 微信账号绑定API(v0.2.0)
- ✅ 获取微信绑定二维码
- ✅ 处理微信绑定回调
- ✅ 微信解绑功能
- ✅ WebSocket实时通知绑定状态
- ✅ 部门管理API
- ✅ 角色和权限管理API
- ✅ RBAC权限模型(用户-角色-权限)
- ✅ 多级菜单和菜单权限控制
- ✅ 菜单权限和操作权限分离(菜单权限控制菜单显示,操作权限控制API访问)
- ✅ 项目管理API(项目CRUD、成员管理、统计)
- ✅ 项目创建者自动加入项目成员(角色为"项目经理")
- ✅ 需求管理API(CRUD、状态流转、统计)
- ✅ Bug管理API(CRUD、状态流转、分配、统计)
- ✅ 任务管理API(CRUD、状态流转、进度管理、任务依赖关系)
- ✅ 任务工时管理(预估工时、实际工时、自动计算进度)
- ✅ 任务进度更新界面(支持预估工时、实际工时、工作日期)
- ✅ 进度自动计算(实际工时/预估工时 * 100,范围0-100%)
- ✅ 资源分配自动创建(更新实际工时时自动创建资源分配记录)
- ✅ 看板管理API(看板、列、任务拖拽排序)
- ✅ 甘特图API(任务时间线、依赖关系、进度可视化)
- ✅ 项目进度跟踪API(统计图表、进度报表)
- ✅ 版本管理API(版本CRUD,Markdown发布说明,关联需求和Bug)
- ✅ 测试单管理API(测试单CRUD,多测试类型,关联Bug)
- ✅ 测试报告管理API(测试报告CRUD,关联测试单)
- ✅ 资源管理API(资源统计、资源分配、资源利用率分析、冲突检测)
- ✅ 资源分配管理API(资源分配CRUD,日历视图,冲突检测)
- ✅ 工作报告API(日报、周报CRUD,支持Markdown)
- ✅ 工作汇总功能(自动汇总资源分配记录和用户创建的Bug)
- ✅ 附件管理API(v0.2.0)
- ✅ 文件上传、下载、关联实体
- ✅ 附件列表管理
- ✅ 文件存储管理
- ✅ 功能模块管理API(模块CRUD,系统资源)
- ✅ 个人工作台API(聚合显示用户相关事务)
- ✅ SQLite数据库迁移优化(支持NOT NULL字段添加)
- ✅ 数据库自动备份功能(v0.4.12)
- ✅ 定时自动备份(支持每天固定时间备份)
- ✅ 手动触发备份
- ✅ 备份文件自动压缩和清理
- ✅ 备份文件完整性验证
- ✅ 使用 VACUUM INTO 确保数据一致性
- ✅ 禅道数据迁移工具(v0.3.0)
- ✅ 部门、角色、用户迁移
- ✅ 项目、项目模块、版本迁移
- ✅ 需求、任务、Bug迁移
- ✅ 项目成员迁移
- ✅ 项目初始化和基础配置
- ✅ 路由配置和守卫
- ✅ 状态管理(Pinia)
- ✅ 登录页面(支持微信登录和密码登录,默认微信登录)
- ✅ 系统初始化页面(支持微信扫码和密码登录两种方式)
- ✅ 工作台页面框架
- ✅ API请求封装(TypeScript 类型完善)
- ✅ TypeScript 类型系统完善(所有类型错误已修复)
- ✅ 用户管理页面
- ✅ 用户列表展示(显示格式:username(nickname))
- ✅ 用户编辑功能(支持昵称编辑)
- ✅ 扫码添加用户功能
- ✅ 添加用户后昵称设置对话框
- ✅ 部门选择改为树形选择(a-tree-select)
- ✅ 微信账号绑定页面(v0.2.0)
- ✅ 微信绑定二维码显示(WeChatQRCode组件)
- ✅ 绑定状态显示(用户信息页面)
- ✅ 微信解绑功能
- ✅ WebSocket实时通知绑定状态
- ✅ 项目管理页面(项目详情、统计、成员管理)
- ✅ 需求管理页面(列表、创建、编辑、详情、统计)
- ✅ Bug管理页面(列表、创建、编辑、详情、分配、统计)
- ✅ 任务管理页面(列表、创建、编辑、详情、进度管理、依赖关系)
- ✅ 任务进度更新界面(预估工时、实际工时、工作日期)
- ✅ 进度自动计算(根据工时实时计算)
- ✅ 工时显示(显示当前实际工时)
- ✅ 看板页面(看板视图、拖拽排序、列管理)
- ✅ 甘特图页面(任务时间线、依赖关系、进度可视化)
- ✅ 进度跟踪页面(统计图表、进度报表、成员工作量)
- ✅ 版本管理页面(版本列表、创建、编辑、关联需求和Bug、状态管理)
- ✅ 版本详情页面(显示关联需求和Bug)
- ✅ 测试单管理页面(列表、创建、编辑、多测试类型选择、关联Bug)
- ✅ 测试报告管理页面(列表、创建、编辑、关联测试单)
- ✅ 资源统计页面(按项目和人员统计工时)
- ✅ 资源分配管理页面(资源分配CRUD,日历视图)
- ✅ 工作报告页面(日报、周报CRUD,支持Markdown)
- ✅ 工作汇总功能(自动汇总资源分配记录和用户创建的Bug)
- ✅ 附件管理功能(文件上传、下载、关联实体)
- ✅ 功能模块管理页面(模块CRUD)
- ✅ 通用模块管理组件(ModuleManagement)
- ✅ 支持在项目列表和详情页直接弹出管理对话框
- ✅ Markdown编辑器组件
- ✅ 项目详情页优化
- ✅ 修复页面滚动问题
- ✅ 项目描述支持Markdown格式渲染显示
- ✅ 历史记录功能(v0.4.0)
- ✅ 为项目、需求、任务、Bug、版本详情页面添加历史记录
- ✅ 支持查看操作历史(创建、编辑、分配、解决等)
- ✅ 支持添加备注
- ✅ 历史记录详情可折叠展开
- ✅ 编辑模态框优化(v0.4.0)
- ✅ 详情页面的"编辑"按钮直接弹出编辑模态框
- ✅ 无需跳转页面即可编辑
- ✅ 支持Markdown编辑器中的图片上传
- ✅ 详情页面滚动修复(v0.4.0)
- ✅ 修复所有详情页面的滚动问题
- ✅ 统一页面样式和交互体验
- ✅ 数据库备份设置页面(v0.4.12)
- ✅ 备份配置管理(启用/禁用、备份时间设置)
- ✅ 手动触发备份功能
- ✅ 备份状态显示(上次备份时间)
- ✅ 项目管理 - 项目管理,成员管理,项目统计,标签管理
- ✅ 需求管理和Bug追踪 - 需求/Bug的CRUD、状态流转、分配、统计,Markdown支持
- ✅ 任务管理和看板系统 - 任务CRUD、状态流转、进度管理、任务依赖、看板拖拽、甘特图、进度跟踪
- ✅ 版本管理 - 版本管理、版本关联需求和Bug、状态管理
- ✅ 任务工时管理 - 预估工时、实际工时、自动计算进度、资源分配自动创建
- ✅ 测试管理 - 测试单管理、测试报告管理、测试统计和覆盖率分析
- ✅ 资源管理 - 资源统计、资源分配、资源利用率分析、冲突检测
- ✅ 工作报告系统 - 日报、周报管理、工作汇总、审批流程(v0.2.0优化)
- ✅ 微信账号绑定 - 微信绑定、解绑、WebSocket实时通知(v0.2.0)
- ✅ 附件管理 - 文件上传、下载、关联实体、附件列表管理(v0.2.0)
- ✅ 禅道数据迁移 - 支持从禅道系统迁移数据到本系统(v0.3.0)
- ✅ 部门、角色、用户迁移
- ✅ 项目、项目模块、版本迁移
- ✅ 需求、任务、Bug迁移
- ✅ 项目成员迁移
- ✅ 通用组件封装 - 模块管理组件封装为通用组件(v0.3.0)
- ✅ 历史记录系统 - 完整的操作历史记录和备注功能(v0.4.0)
- ✅ 项目、需求、任务、Bug、版本操作历史记录
- ✅ 字段变更详情记录和显示
- ✅ 手动添加备注功能
- ✅ 历史记录可折叠展开
- ✅ 编辑模态框优化 - 详情页面直接编辑功能(v0.4.0)
- ✅ 所有详情页面支持模态框编辑
- ✅ 无需跳转即可完成编辑操作
- ✅ 提升用户体验和操作效率
- ✅ 数据库自动备份 - 完整的数据安全保障功能(v0.4.12)
- ✅ 定时自动备份(每天固定时间)
- ✅ 手动触发备份
- ✅ 备份文件自动压缩和清理(保留7天)
- ✅ 备份文件完整性验证
- ✅ 使用 VACUUM INTO 确保数据一致性
- 单元测试补充(各模块测试覆盖率提升至100%)
- 禅道数据迁移工具完善(支持更多数据类型的迁移)
- ✅ 数据库自动备份功能:支持定时备份和手动备份,确保数据安全
- ✅ 备份文件验证:自动验证备份文件完整性和有效性
- ✅ 用户体验优化:统一弹窗详情和非弹窗详情内容
- ✅ 安全修复:修复登录密码修改检测绕过漏洞
- ✅ 前端构建优化:优化代码分割策略,提升加载性能
- ✅ 历史记录功能:为项目、需求、任务、Bug、版本详情页面添加完整的操作历史记录
- ✅ 编辑模态框:详情页面支持直接弹出编辑模态框,无需跳转
- ✅ 滚动修复:修复所有详情页面的滚动问题,统一用户体验
- ✅ 备注功能:支持在历史记录中添加备注
- ✅ 字段变更追踪:详细记录和显示字段变更历史
- 插件管理系统 - 插件安装、配置、前端界面支持、插件市场
- 关系图生成 - 数据库ER图、业务关系图
- 启动开发服务器:
cd backend
go run cmd/server/main.go服务器启动后会自动:
- 初始化数据库连接
- 执行数据库迁移
- 启动 API 服务(默认端口:8080)
- 提供静态文件服务(如果 frontend/dist 目录存在)
- 运行测试:
go test ./...-
数据库迁移: 数据库会在启动时自动迁移(通过GORM AutoMigrate)
-
静态文件服务: 后端会自动查找并服务前端构建后的静态文件(
frontend/dist),支持 SPA 路由。
- 安装依赖:
cd frontend
npm install- 启动开发服务器:
npm run dev- 构建生产版本:
npm run build
# 或使用 yarn
yarn build构建后的文件在 frontend/dist 目录,后端会自动服务这些静态文件。
编辑 backend/config.yaml:
- 数据库配置(SQLite或MySQL)
- JWT密钥
- 微信开放平台AppID和AppSecret
- 服务器端口等
编辑 frontend/.env:
- API基础URL
API采用RESTful风格,主要端点:
/api/init/*- 系统初始化(检查状态、保存微信配置、完成初始化)/api/auth/*- 认证相关(登录、微信登录、用户信息)/api/auth/wechat/bind/qrcode- 获取微信绑定二维码(v0.2.0)/api/auth/wechat/bind/callback- 处理微信绑定回调(v0.2.0)/api/auth/wechat/unbind- 解绑微信(v0.2.0)
/api/permissions/*- 权限管理/api/users/*- 用户管理/api/departments/*- 部门管理/api/projects/*- 项目管理/api/requirements/*- 需求管理/api/bugs/*- Bug管理/api/tasks/*- 任务管理/api/versions/*- 版本管理/api/test-cases/*- 测试单管理/api/test-reports/*- 测试报告管理/api/resources/*- 资源管理(统计、利用率、冲突检测)/api/resource-allocations/*- 资源分配管理/api/reports/*- 工作报告(v0.2.0优化)/api/reports/work-summary- 获取工作汇总(v0.2.0)
/api/daily-reports/*- 日报管理/api/weekly-reports/*- 周报管理/api/attachments/*- 附件管理(v0.2.0)/api/modules/*- 功能模块管理/api/boards/*- 看板管理/api/dashboard/*- 工作台数据/api/system/*- 系统设置(v0.4.12)/api/system/backup-config- 备份配置管理(GET/POST)/api/system/backup/trigger- 手动触发备份(POST)
系统提供了从禅道(Zentao)到本系统的数据迁移工具:
- ✅ 部门(zt_dept -> departments)
- ✅ 角色和权限(zt_group + zt_grouppriv -> roles + permissions)
- ✅ 用户(zt_user -> users)
- ✅ 项目(zt_project -> projects)
- ✅ 项目模块(zt_module -> modules)
- ✅ 版本(zt_build -> versions)
- ✅ 需求(zt_story -> requirements)
- ✅ 任务(zt_task -> tasks)
- ✅ Bug(zt_bug -> bugs)
- ✅ 项目成员(zt_team -> project_members)
详细使用说明请参考 数据迁移工具文档
详细 API 文档请参考 docs/API设计文档.md
系统提供了从禅道(Zentao)到本系统的数据迁移工具,支持迁移以下数据类型:
- ✅ 部门(zt_dept -> departments)
- ✅ 角色和权限(zt_group + zt_grouppriv -> roles + permissions)
- ✅ 用户(zt_user -> users)
- ✅ 项目(zt_project -> projects)
- ✅ 项目模块(zt_module -> modules)
- ✅ 版本(zt_build -> versions)
- ✅ 需求(zt_story -> requirements)
- ✅ 任务(zt_task -> tasks)
- ✅ Bug(zt_bug -> bugs)
- ✅ 项目成员(zt_team -> project_members)
-
配置文件:复制
backend/cmd/migrate/migrate-config.yaml.example为migrate-config.yaml,并修改数据库连接信息 -
运行迁移:
cd backend
go run cmd/migrate/main.go -config cmd/migrate/migrate-config.yaml详细使用说明请参考 数据迁移工具文档
- TDD开发:先写测试,再实现功能
- 代码规范:遵循Go和TypeScript最佳实践
- 数据库兼容:使用GORM抽象层,支持SQLite和MySQL
- Markdown支持:需求、Bug、任务等模块支持Markdown格式
首次使用系统需要进行初始化:
-
访问初始化页面:系统会自动检测是否已初始化,未初始化会跳转到
/init页面 -
第一步:配置微信(可选)
- 输入微信开放平台的 AppID 和 AppSecret
- 或跳过此步骤,直接使用密码登录初始化
- 注意:微信配置也可以在系统初始化后,通过"系统管理 > 微信设置"菜单进行配置
-
第二步:创建管理员
- 方式一:微信扫码(默认)
- 扫描二维码完成微信登录
- 自动创建管理员账号(使用微信昵称)
- 方式二:密码登录
- 输入用户名、密码、昵称
- 创建管理员账号
- 方式一:微信扫码(默认)
初始化完成后,系统会生成 JWT Token,自动登录并跳转到工作台。
已登录用户可以绑定微信账号,绑定后可以使用微信扫码登录:
-
绑定微信
- 点击用户信息菜单中的"绑定微信"
- 扫描二维码完成绑定
- 系统会通过WebSocket实时通知绑定状态
-
解绑微信
- 点击用户信息菜单中的"解绑微信"
- 确认后即可解绑
-
使用微信登录
- 绑定后,在登录页面可以使用微信扫码登录
- 无需输入用户名和密码
系统支持在需求、Bug、任务等模块中上传和管理附件:
-
上传附件
- 在需求、Bug、任务等详情页面,可以上传相关文档
- 支持多种文件类型(图片、文档、压缩包等)
- 文件存储在
backend/uploads/目录
-
查看和下载附件
- 在相关实体的详情页面查看附件列表
- 点击附件名称即可下载
-
管理附件
- 管理员可以在附件管理页面查看所有附件
- 支持删除不再需要的附件
系统支持日报和周报功能,并已优化用户体验:
-
创建日报/周报
- 进入"工作报告"菜单
- 选择"日报"或"周报"标签
- 点击"新增"按钮创建报告
- 系统会自动汇总工作内容(包含资源分配记录和用户创建的Bug)
-
工作内容汇总
- 创建日报/周报时,系统会自动汇总指定日期范围内的工作
- 汇总内容包括:需求、任务、Bug的工作记录和工时
- 汇总格式为Markdown,可以直接编辑
-
提交和审批
- 填写完成后,点击"提交"按钮
- 系统自动设置状态为"已提交"
- 审批人可以在"审批"标签页查看待审批的报告
- 支持审批通过或拒绝,并添加批注
-
Markdown支持
- 工作内容支持Markdown格式
- 列表页自动限制为2行显示,点击可查看完整内容
- 数据库模型已全部定义,所有核心功能模块的API和前端页面已实现
- 微信登录需要配置真实的AppID和AppSecret(可选,也可以使用密码登录)
- 微信配置可以在系统初始化时配置,也可以在"系统管理 > 微信设置"菜单中配置
- 生产环境请修改JWT密钥和数据库配置
- 后端支持静态文件服务,可以直接部署后端服务,无需单独的 Web 服务器(如 Nginx)
- 附件文件存储在
backend/uploads/目录,请定期备份 - 数据库备份文件存储在数据库文件所在目录的
backups文件夹中,自动保留最近7天的备份 - 建议配置自动备份功能,在系统低峰期执行备份(如凌晨2点)
按照计划继续实现剩余功能模块,每个模块遵循TDD开发流程:
- 编写详细设计文档
- 编写单元测试
- 实现功能
- 确保测试覆盖率100%