Releases: DevMinions/UniDormManager
Release list
v0.2.7 — 9 dependabot merges + pgx critical CVE 修复
依赖更新版。含 1 critical + 1 low 安全漏洞修复。建议覆盖部署。
🔐 安全
- pgx critical memory-safety + low SQL 注入(美元引用)→ 升 jackc/pgx/v5 5.7.6 → 5.9.2
⬆️ Runtime 依赖
- gin 1.10.1 → 1.12.0
- pgx 5.7.6 → 5.9.2
- logrus 1.9.3 → 1.9.4
- recharts 3.7.0 → 3.8.1
⬆️ 开发依赖 / Transitive
- vite/vitest/@vitest/ui multi-bump · rollup 4.57.1→4.60.4 · postcss 8.5.6→8.5.15
- brace-expansion / minimatch / picomatch / flatted
package-lock.json 净减 ~1300 行。
✅ 回归 baseline 136/136 全绿,0 regression(audit_api 38 · audit_web 17 · 4 个 UI CRUD/workflow 50 项 · vitest 31)。
merge 后 open PR 0,open alert 0。
Full changelog: v0.2.6...v0.2.7
v0.2.6 — docs polish: DEVELOPMENT_GUIDE/DEPLOYMENT 重写 + 删 3 个孤儿文档
仅文档,无代码 / schema 变更。可直接覆盖 v0.2.5 部署。
📚 文档
- DEVELOPMENT_GUIDE.md 重写 — 567 → 99 行(-83%)。原文档是 UniApp/Vue 时代残留(22 处 Vue / 0 处 React),会严重误导贡献者。新版聚焦项目专属约定
- DEPLOYMENT.md 重写 — 581 → 220 行(-62%)。原文档 18 处 MySQL / 0 处 PostgreSQL / 含 npm run build:h5(UniApp H5),完全无法部署。新版三条实际路径(Docker / Render / Self-host)+ env vars + 升级 + 备份 + 故障排查
- 删 3 个 Mini 时代孤儿文档(共 1244 行):DESIGN_SYSTEM_v3 / ROLE_BASED_DESIGN / USER_MANUAL — 都是小程序时代写给 UniApp 的设计/操作文档,跟当前 Web admin 完全脱节
docs/ 文件数:10 → 7。全部内容跟当前实现一致。
Full changelog: v0.2.5...v0.2.6
v0.2.5 — README/CONTRIBUTING 按 GitHub 主流极简重写
仅文档,无代码 / schema 变更,可直接覆盖 v0.2.4。
README/CONTRIBUTING 按 GitHub 主流极简标准重写(246/267→151/151 行,-39%/-44%),
SECURITY 默认分支改 main,PR template 同步 105 项 baseline。
Full changelog: v0.2.4...v0.2.5
v0.2.4 — make audit 一键跑全 E2E baseline
patch — 工程性收口,无功能变更。
🛠 工程
make audit一键跑全 E2E baseline 105 项,依赖链顺序跑 6 个 harness:- audit_api 38(后端 API)
- audit_web 17(Web 导航)
- audit_web_crud 14(Buildings UI CRUD)
- audit_web_crud_students 10
- audit_web_crud_rooms 13
- audit_web_workflow_repairs 13(status workflow)
- 任一 fail 立即停后续(make 默认 -e)
- 预置 vite preview :3000 + 后端 :8082 + admin/admin123(可 env 覆盖)
- 跟既有
make test互补:test 跑单元/集成,audit 跑端到端真启服务 + Playwright
Full changelog: v0.2.3...v0.2.4
v0.2.3 — fix(repairs) 状态推不动 + rooms/repairs harness
patch — v0.1.0 静默 bug 修复 + e2e 大幅扩展。可直接覆盖 v0.2.2。
🐛 修复(高优先级 — 影响用户核心流程)
- Repairs 状态推不动 —
convertRepairStatus强行把出库 status 转小写('Pending'→'pending'/'In Progress'→'processing'),前端 RepairRequests.tsx 用大写比较 status 决定渲染 "开始维修" / "标记完成" 按钮,转换后所有判断全 false → 用户根本无法推进任何报修工单。此 bug v0.1.0 起静默存在,新加的 e2e workflow harness 抓出 - 删
convertRepairStatus函数 + 三处调用(GetAllRepairRequests / GetRepairRequestByID / store_pagination),后端直返 DB 存储格式
🧪 测试
tests/audit_web_crud_rooms.js新文件 — Rooms UI CRUD 13 项(grid 卡片定位 + search 三列 OR + 容量编辑 + 删除)tests/audit_web_workflow_repairs.js新文件 — Repairs status workflow 13 项(Pending → In Progress → Completed)- baseline 136/136 全绿 + 5 包 ok(从 110 → 136,新增 26 项)
Full changelog: v0.2.2...v0.2.3
v0.2.2 — students search 修 OR + Students CRUD harness
patch — backend bug 修复 + e2e 覆盖扩展。可直接覆盖 v0.2.1。
🐛 修复
- Students search 三列 AND 假绿 — BuildStudentQuery 串三次 WhereLike 自动 AND,要求三列同时含 search → 后端返 total=0。Students 页面搜索框输入后列表立刻变空。改成单条 OR + 同 $n 复用,跟 BuildRoomQuery 一致
🧪 测试
- tests/audit_web_crud_students.js 新文件 — Students UI CRUD 10 项(create → search 验三列 OR → edit → delete with window.confirm → 列表同步)
- baseline 110/110 全绿(从 100/100 → 110/110)
Full changelog: v0.2.1...v0.2.2
v0.2.1 — docs/monitoring/test 收尾
无 API 变更 / schema 变更,patch 级别可直接覆盖 v0.2.0 部署。
📚 文档
- API.md 加 "v0.2.0 新增接口" 章节(upload / statistics / audit-logs / stream / scheduler)
- ARCHITECTURE.md 新文件 — 7 张 Mermaid 图(C4 L1/L2/L3 + 写请求 audit 链 + JWT/RBAC + Dashboard + 部署拓扑)
- README / README.en.md 加 ARCHITECTURE.md 链接
📊 监控
- Grafana 默认 dashboard
grafana/provisioning/dashboards/unidorm-overview.json— file provisioning 自动 load,5 行 11 panel,覆盖业务/HTTP/审计/Scheduler/登录尝试。Grafana 10+ 兼容
🧪 测试
tests/audit_web_crud.js新文件 — Buildings 完整 UI CRUD 14 项 + 3 个 e2e 踩坑笔记- baseline 全绿 100/100 + 5 包 ok:audit_api 38/38 · audit_web 17/17 · audit_web_crud 14/14 · vitest 31/31 ·
go test ./...5 包 ok
🐛 修复
- E2E click 30s actionability 卡死 —
{ force: true }绕过,input 换.focus() - TestSetJWTSecret env 污染 — 子测加
t.Setenv('JWT_SECRET', '')隔离
🔧 改进
- go.mod:
robfig/cron/v3提到 direct(go mod tidy)
Full changelog: v0.2.0...v0.2.1
v0.2.0 — Real-time Audit, Scheduler, One-Click Demo
第二个开源版本 ✨
本版集中补齐对外可观察性 + 工程能力,从 v0.1.0 起累计 11 个 phase。
重点亮点
实时审计闭环
- POST/PUT/DELETE 自动写入
audit_logs(异步 goroutine,API 不阻塞) - SSE 流
/api/audit-logs/stream— Web Dashboard 实时面板订阅 - Prometheus
audit_events_total/sse_subscribers指标
工程能力
- 内置 cron scheduler(过期 token 清理 + 晚归扫描)+
/api/scheduler/jobs查任务 /api/upload文件上传(MIME 嗅探 + 5MiB 限制 + 静态 serve)/api/statistics/repairs-by-day时序聚合,Web Dashboard 加 LineChart 趋势- Render Blueprint
render.yaml— 一键 deploy demo
国际化与质量
- 英文
README.en.md+ 顶部语言切换 - 主仓库回归
audit_api.py38/38 · Web E2E 17/17 · vitest 31/31 · go test 全绿 - Web bundle code-split(最大 chunk 386KB)
修了什么
- B1-B6 / B6b 全部审计发现的 schema/RBAC/SQL 参数错位 bug
PaginatedRequestcontract:前端不传分页参数也不再 400
安全
- 默认密码
admin123移除,首启随机生成 16 字符 - main 分支 ruleset 防 force push / 防 deletion
- Private Vulnerability Reporting 启用
完整变更详见 docs/CHANGELOG.md 中 [0.2.0]。
一键 demo
移动端
UniApp(可同时构建 H5 + 微信小程序)拆到 DevMinions/UniDormManager-Mobile,WIP 状态。
v0.1.0 — Initial Open Source Release
首个开源版本 ✨
UniDormManager 是一套基于 Go + React 19 的现代化大学宿舍管理系统。本版本剥离了不完整的客户端,聚焦 Server (Gin + PostgreSQL) + Web 管理端 (React + Vite + Tailwind) 两个成熟稳定的子项目作为 v0.1.0 出仓。
🚀 包含的核心功能
- 学生管理(信息维护、宿舍分配、按楼栋作用域过滤)
- 楼栋与房间管理(含楼层属性、容量/入住统计)
- 报修管理(CRUD + 状态流转)
- 公告管理
- 查寝评分(含房间汇总与排行)
- 门禁记录与晚归告警处理
- 调宿申请与多步审批
- RBAC 权限管理(系统管理员通过通配自动获得所有权限)
- 仪表板(KPI + 楼栋入住率图表 + 报修状态饼图)
- Prometheus
/metrics+ 健康检查/health
🏗️ 技术栈
- 后端: Go 1.23 · Gin · pgx · PostgreSQL 16 · Redis 7 (可选缓存) · JWT
- 前端: React 19 · TypeScript · Vite · Tailwind CSS · Recharts · Lucide React
- 部署: docker-compose(PostgreSQL + Redis + 后端 + 前端 + 可选 Nginx + 可选 Grafana)
- CI: GitHub Actions(测试 + 构建 + Trivy 安全扫描 + ghcr.io 镜像推送)
✅ 质量基线
cd UniDormManagerServer && go test ./...全绿tests/audit_api.py后端 36 个接口实测全 PASS(含 auth/RBAC/分页/CRUD 闭环)tests/audit_web.jsWeb E2E 17/17 PASS(Playwright + 系统 Chrome 抓 9 张 README 截图)- 已修复全部已知 schema/RBAC/SQL 参数错位等 bug
🔐 安全实践
- 默认 admin 密码不再硬编码
admin123,首启crypto/rand生成 16 字符随机密码,日志一次性打印(可被ADMIN_INITIAL_PASSWORD环境变量覆盖) - Private Vulnerability Reporting 已启用,漏洞通过 GitHub Security tab 上报
JWT_SECRET强制要求生产环境替换.env、本地 IDE 配置等已 gitignore
📚 文档
见 README 文档列表:Docker 部署 / 数据库初始化 / 完整部署 / API 接口 / 开发规范 / 用户操作手册 / 变更日志 / 贡献指南
🙏 致谢
感谢 @anthropics/claude-code 全程辅助这次开源整理工作。