行业 :职业教育信息化 / 智慧校园 机构 :上海市经济管理学校(Shanghai Economic Management School, SHEMS) 域名 : *.shems.edu.cn 场景 :中等职业教育学校的教学管理与数据分析
痛点 说明 数据孤岛 考勤、成绩、课时、作业数据分散在不同系统,无法统一分析 手工统计 教师课时、学生出勤等数据依赖人工统计,效率低易出错 缺乏实时性 教学数据滞后,管理层无法及时掌握教学动态 协同困难 教师之间、师生之间缺乏实时协作工具 安全薄弱 传统 HTTP 部署,缺乏 DDoS 防护和访问控制
### 1. 用户认证与安全
- 账号密码登录 :教师/管理员通过工号和密码登录
- 图形验证码 :4 张验证码图片随机轮换,防止暴力破解
- Session 管理 :express-session + Redis 存储,支持代理模式
- IP 验证中间件 : validateIP() 校验请求来源
- 登录限流 : rateLimitLogin() 防止暴力登录
- 设备认证 : certified-devices.json 记录已认证设备
### 2. 教学数据分析
- 仪表盘 (dashboard) :总览教学数据、统计图表
- 详细分析 (detail-analysis) :多维度教学数据分析
- 课时统计 (course-hours) :教师课时量统计
- 时段统计 (period-stats) :按时间段分析教学情况
- 总表 (total-table) :汇总数据表格
### 3. 考勤管理
- 考勤记录 :学生出勤情况记录与查询
- 考勤统计 :按班级、时间段汇总考勤数据
### 4. 作业管理
- 作业数据 (homework-data) :作业提交情况查看
- 作业管理 (homework-manage) :作业布置与批改管理
### 5. 教师管理
- 教师管理 (teacher-admin) :教师信息维护
- 教师详情 (teacher-detail) :单个教师的教学数据详情
### 6. 事件管理
- 事件管理 (event-mgmt) :教学事件创建与配置
- 事件列表 (events) :事件查看与管理
### 7. 管理后台 (admin)
- 系统管理 :用户权限、系统配置
- 数据导入 :支持 Excel 导入(学生名单、学科、成绩)
- Monitor 自动登录 : /monitor-auto-login 一键跳转监控面板
###
技术亮点
### 1. PM2 集群 + Redis 跨进程共享
难点 :PM2 cluster 模式下,每个 Worker 有独立内存空间,session、DDoS 状态等无法直接共享。
解决方案 :
- 所有共享状态通过 shared-state.js 模块统一管理
- 优先使用 Redis(内存级速度),不可用时自动降级到 MySQL
- Session 通过 express-mysql-session 持久化,所有 Worker 共享同一份 session
### 2. 智能降级机制
亮点 :Redis 不可用时,系统不会崩溃,而是自动降级到 MySQL 存储共享状态。
### 3. DDoS 防护中间件(可动态开关)
亮点 :通过 Redis 共享状态,所有 Worker 实时同步防护开关,无需重启。
- 速率限制: express-rate-limit 按 IP 限流
- Bot 检测:识别异常请求模式
- 动态开关:monitor 面板一键控制,所有 Worker 立即生效
### 4. Yjs CRDT 协同编辑
亮点 :集成 Yjs 实现多人实时协同编辑,基于 CRDT(无冲突复制数据类型)算法。
- 无需中心服务器协调冲突
- 支持离线编辑后自动合并
- WebSocket 实时同步
### 5. Piscina 线程池处理 CPU 密集型任务
亮点 :Node.js 是单线程的,Excel 解析、数据统计等 CPU 密集型任务会阻塞主线程。
- 使用 Piscina 创建 Worker 线程池
- 将计算任务分配到独立线程
- 主线程继续处理请求,不被阻塞
### 6. 反向代理 + HTTPS 自动管理
亮点 :
- 自动清理被占用的 80/443 端口
- HTTP 自动 301 重定向到 HTTPS
- SSL 证书自动检测与加载
-
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论