面向考研、考公等集训寄宿培训机构的一体化基地管理系统 —— 将线下实体运营流程全面线上化。
开源说明:本仓库开放用于学习、演示与评估。代码采用"查看-运行-学习"友好策略,商业部署/二次开发/分发请参见 LICENSE 联系作者获取授权。演示数据全部为程序生成的虚构信息。
覆盖 学员建档 → 入住登记 → 选床分配 → 日常考勤 → 费用缴纳与退费 → 物品损坏报修与赔偿 → 退营结算 的全流程闭环业务,各模块数据强互通(同事务级联),并内置 BI 数据驾驶舱。由多智能体开发团队(产品/架构/UI/前后端/测试/审阅)按商业流程协作交付:每个关键环节经 3 轮评审盘整后推进。
scripts\start.bat双击即可:自动安装依赖 → 构建前端 → 初始化演示数据库 → 启动服务并打开浏览器。
bash scripts/start.shdocker compose up -d # → http://localhost:3000启动后访问 **http://localhost:3000**(前端页面与 API 同端口,单 Node 进程)。
- 技术栈:Node.js 24 + Express + SQLite(node:sqlite 内嵌,无需安装任何数据库);Vue 3 + Element Plus + ECharts
- 数据落盘:
server/data/app.db(WAL 模式,每日自动备份保留 7 份于server/data/backups/) - 演示数据库:首次启动自动灌入(2 栋楼 176 床、120 名学员、30 天考勤、账单/缴费/退费/报修/赔偿/核销等全套样例单据)
| 账号 | 角色 | 数据范围 |
|---|---|---|
| admin | 超级管理员 | 全部(含系统管理/数据修复) |
| principal | 校长(张明远) | 全部(大额审批权) |
| academic | 教务班主任(李婷) | 仅考研全年班2027届1期 |
| academic2 | 教务班主任(王乐) | 仅考公封闭班1/2期 |
| dorm / dorm2 | 宿管(刘芳/陈静) | 仅本楼栋 B1 / B2 |
| finance | 财务(赵芸) | 全部资金数据 |
| front | 前台招生(孙悦) | 仅本人客户 |
| repairman | 维修工程师(周大河) | 仅本人工单 |
| front2 | 前台招生(钱小雅,备用) | 仅本人客户(3 名,用于水平越权隔离演示) |
| dorm_old | 吴桂香(已停用样例) | 登录被拒,用于"停用账号即时失效"演示 |
用不同角色登录可直观体验 RBAC 权限矩阵 + 六级数据范围隔离(如 dorm 只见 B1 床位、academic 只见本班期学员、前台不能审批自己发起的退费等)。
| 模块 | 能力 |
|---|---|
| 数据驾驶舱 | 6 大 KPI、在营/出勤趋势、收支 12 月、床位/考勤分布、楼栋入住率、班期对比、待办钻取 |
| 学员管理 | 建档查重、360° 详情、状态机 7 态全留痕、入住登记向导(缴费校验→选床→物资→打印登记单)、退营清算(欠费拦截→试算→级联释放)、复学、异常登记、意向选床 |
| 宿舍床位 | 楼栋-房间-床位三级、四色床位图、预留/确认/调换(MOVE/SWAP)/维修停用、乐观锁防超卖、腾床升级 |
| 考勤管理 | 每日点名(6 态、批量提交、修改留痕)、请假(分级审批、区间预置考勤、销假)、外出登记(超时自动升级)、连续旷课预警、多维统计 |
| 费用管理 | 收费项目字典、自动+手工账单、缴费核销(多账单分摊+流水对账)、退费全流程(试算→冻结→分级审批→执行五联动)、职责分离(发起人不可审批/执行)、坏账核销、催收记录 |
| 报修赔偿 | 七态工单流(派单→维修→验收→判责)、人为损坏自动生成赔偿单+挂账账单、现场收款/减免/争议/裁定、维修成本统计 |
| 班期管理 | 班型字典、期数生命周期(筹备→开班→结课只读)、满员校验、名单/风险标签、调班差额试算与结算 |
| 系统管理 | 员工/部门树/角色(7 预置+自定义)、菜单+按钮+数据范围三层权限(权限修改实时生效)、业务配置热生效、操作日志审计(敏感标记) |
| 审批中心 | 退费/请假/坏账待办聚合审批;消息中心(审批/预警/欠费/敏感操作推送) |
| 数据驾驶舱 | 床位总览(四色状态) |
|---|---|
| 每日点名(六态快捷) | 学员管理 |
| 账单管理 | 审批中心(职责分离) |
| 报修管理(七态流转) | 角色权限(读码门禁可视化) |
├─ scripts/ 一键启动脚本(start.bat / start.sh)
├─ server/ Node.js 后端(Express + node:sqlite)
│ └─ src/
│ ├─ db/ schema.sql(42 表 DDL)、连接、事务、数据范围注入器
│ ├─ middleware/ JWT 认证 / RBAC 权限 / 数据范围 / 审计 / 校验
│ ├─ services/ 12 个业务服务(学员/床位/考勤/费用/退费/报修/赔偿/班期/系统/驾驶舱…)
│ ├─ routes/ 22 个路由模块(REST,统一响应包)
│ ├─ jobs/ 定时任务(预留释放/逾期标记/请假恢复/外出升级/备份)
│ └─ seed/ 演示数据(幂等重置,npm run seed)
├─ web/ Vue3 前端(Element Plus + ECharts)
│ └─ src/views/ 34 个页面(驾驶舱/床位图/点名板/入住向导/退费流程…)
├─ docs/ 全套工程文档(需求/架构/UI/评审记录/测试/交付)
├─ Dockerfile / docker-compose.yml
- 部署手册(环境要求/初始化/备份恢复/常见问题)
- 用户手册(分角色操作指引)
- 验收报告(测试证据与评审结论)
- 需求与设计:
docs/01-需求分析/(SRS 72 条 FR)、docs/02-架构设计/(42 表 DDL、158 端点、27 事务)、docs/03-UI设计/ - 评审记录:
docs/04-评审记录/(需求 3 轮 + 架构/UI 3 轮 + 交付 3 轮)
cd server
npm run seed # 重置并重新灌入演示数据
npm start # 启动服务(生产)
npm run dev # 开发模式(--watch)
node scripts/api-e2e-test.mjs # 端到端业务流回归(39 用例)
node scripts/regression-fix-iteration.mjs # 负向安全/边界回归(27 用例,需 3207 隔离环境)
node scripts/data-health-check.mjs # 数据不变量扫描(只读)
cd web
npm run dev # 前端开发模式(5173,代理至 3000)
npm run build # 构建生产包本仓库内容默认版权保留(详见 LICENSE):学习与演示自由使用;商业部署、二次开发或分发请联系作者获取商业授权。