# 在线学习签到系统 **Repository Path**: dm_team/online-learning-checkin-system ## Basic Information - **Project Name**: 在线学习签到系统 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-09 - **Last Updated**: 2026-08-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 在线学习签到系统 在线学习签到系统是一个面向线上训练营、直播课程、课后学习督导和学习打卡管理的教学管理系统。系统围绕“班次开营、学员建档、任务发布、打卡审核、补签审批、学情预警、结营归档”形成完整业务闭环,并新增了可维护的业务类别库,方便管理员随时扩充课程方向、交付方式、打卡方式、任务状态、补签状态、预警类型等下拉选项。 ## 一、技术栈 - 前端:React 18、Vite 6、Ant Design 5、Recharts、Axios - 后端:Node.js、Express、better-sqlite3 - 数据库:SQLite,本地文件数据库,不需要单独安装 MySQL - 后端端口:`9020` - 前端端口:`5182` 建议环境: - Node.js:18.18 或更高版本,推荐 Node.js 20 LTS - npm:9 或更高版本,Node.js 安装后会自带 npm - 操作系统:Windows 10/11、macOS、Linux 均可运行 ## 二、目录说明 ```text 10-online-learning-checkin-system ├─ backend 后端 Express 项目 │ ├─ src 后端源码 │ ├─ test 后端测试 │ ├─ data SQLite 数据库运行目录,首次启动自动生成 │ └─ package.json 后端依赖和启动命令 ├─ frontend 前端 React/Vite 项目 │ ├─ src 前端源码 │ └─ package.json 前端依赖和构建命令 ├─ database 初始化 SQL 和样例数据 ├─ docs 系统说明、设计、部署、测试、答辩文档 ├─ screenshots 可放置系统截图 ├─ start-project.bat Windows 一键启动脚本 └─ README.md 项目总说明 ``` ## 三、默认账号 - 管理员:`learn_admin` / `Pass@123` - 学习督导:`learn_user` / `Pass@123` 管理员可进入“类别管理”和“用户总览”;学习督导可使用班次、学员、任务、打卡、补签、预警等核心业务模块。 ## 四、启动步骤 ### 1. 安装 Node.js 先在电脑上安装 Node.js 18.18 或更高版本。安装完成后打开 PowerShell 或命令提示符,执行: ```bash node -v npm -v ``` 能看到版本号即表示安装成功。 ### 2. 启动后端 进入第10个系统的后端目录: ```bash cd D:\Ten-Projects\10-online-learning-checkin-system\backend npm install npm run start ``` 后端启动后访问: ```text http://127.0.0.1:9020/api/health ``` 如果返回包含 `ok` 的 JSON,说明后端运行正常。首次启动时会自动读取 `database/init.sql` 和 `database/sample_data.sql`,并在 `backend/data/online-learning-checkin-system.db` 生成 SQLite 数据库。 ### 3. 启动前端 另开一个 PowerShell 窗口,进入前端目录: ```bash cd D:\Ten-Projects\10-online-learning-checkin-system\frontend npm install npm run dev ``` 浏览器访问: ```text http://127.0.0.1:5182 ``` 运行到这里后,浏览器会打开登录页。可直接使用下面账号登录: - 管理员: `learn_admin` / `Pass@123` - 学习督导: `learn_user` / `Pass@123` 建议第一次演示或检查时先使用管理员账号,因为管理员可以看到类别管理、用户管理和完整业务功能。 登录默认账号即可使用系统。 ### 4. Windows 一键启动 也可以双击项目根目录下的 `start-project.bat`。脚本会分别打开后端和前端命令行窗口,并自动执行依赖安装和启动命令。 ## 五、主要功能 - 运营驾驶舱:展示在营班次、进行中任务、待审核打卡、待审批补签、风险学员和近期趋势。 - 学习督导台:集中查看待办任务,适合教师或学习督导每日处理。 - 班次中心:新建班次,维护课程方向、交付方式、开营、暂停和结营状态。 - 学员台账:录入学员,维护学员状态、学习进度、风险等级和最近打卡情况。 - 打卡任务:发布学习打卡任务,设置任务日期、开放时间、截止时间和打卡方式。 - 打卡审核:提交打卡记录,执行审核通过或驳回,并同步更新学习进度。 - 补签审批:处理缺卡学员补签申请,审批通过后联动打卡记录和预警状态。 - 学情预警:跟进连续缺卡、进度落后、学时不足等风险。 - 类别管理:维护 22 个业务类别分组、194 个默认类别项,可继续新增、编辑、停用或删除。 - 用户总览:管理员维护平台账号、角色和启停状态。 ## 六、类别扩充说明 本次扩充后,系统已经内置: - 类别分组:22 个 - 类别项:194 个 类别分组包括课程方向、交付方式、班次状态、学员状态、风险等级、打卡方式、任务状态、打卡审核状态、记录来源、补签状态、预警类型、预警状态、学期阶段、学员部门、导师角色、学习内容、提醒渠道、凭证类型、干预方式、结业标识、用户状态和操作类型。 管理员登录后进入“类别管理”,可以随时新增业务类别。例如新增“AI 工具实训营”课程方向后,班次中心的新建班次下拉框会自动出现该选项。停用类别后,新的业务表单不再展示该类别,但历史数据仍然保留。 ## 七、测试和构建 后端语法检查和类别服务测试: ```bash cd D:\Ten-Projects\10-online-learning-checkin-system\backend node --check src\server.js node --check src\categoryService.js node --check src\categorySeed.js node --test test\categoryService.test.js ``` 前端生产构建: ```bash cd D:\Ten-Projects\10-online-learning-checkin-system\frontend npm run build ``` ## 八、上传码云注意事项 建议上传源码和文档,不要上传运行生成的依赖和数据库文件。当前 `.gitignore` 已排除: - `frontend/node_modules/` - `frontend/dist/` - `backend/node_modules/` - `backend/data/` - `*.db` 别人从码云下载项目后,只需要分别在 `backend` 和 `frontend` 执行 `npm install`,再按上面的启动命令运行即可。 ## 九、重置数据库 如需恢复初始演示数据,先停止后端服务,然后删除: ```text D:\Ten-Projects\10-online-learning-checkin-system\backend\data\online-learning-checkin-system.db D:\Ten-Projects\10-online-learning-checkin-system\backend\data\online-learning-checkin-system.db-shm D:\Ten-Projects\10-online-learning-checkin-system\backend\data\online-learning-checkin-system.db-wal ``` 重新启动后端后,系统会自动重新初始化数据库和默认类别。