# 使用说明 > **中学成绩档案系统**(初中 / 高中) > 版权所有 © 马建军 · 微信 **dekun03** · 手机 **18364911125** --- ## 1. 系统简介 本系统面向**初中、高中**学生,提供: - 多用户账号,数据互相隔离 - 学生档案管理(学段、年级、班级) - 成绩录入:周考、月考、期末 - 分科成绩占比曲线(上升绿色、下降红色、大幅波动高亮) - 错题库:拍照上传 → OCR 识别 → AI 生成解法(可编辑) - 成绩 CSV 导出 部署与代码发布见 [DEPLOY.md](./DEPLOY.md)(systemd 零 Node,端口 **23566**)。 --- ## 2. 快速上手 ### 2.1 登录与注册 1. 浏览器打开 `http://<服务器IP>:23566` 2. **首次部署**默认超级管理员:**admin / admin123**(请登录后立即修改) 3. 若管理员已**开放注册**,可在登录页 **注册** 新账号(用户名 ≥3 字符,密码 ≥6 字符) 4. 若管理员已**关闭注册**,登录页不显示注册入口,需联系管理员在「系统设置 → 用户管理」中添加账号 > 普通用户数据仅本人可见;普通用户**不能**自行修改用户名或密码。 ### 2.2 系统设置(超级管理员) 首页右上角 **系统设置**(仅超级管理员可见): | 功能 | 说明 | |------|------| | 注册开关 | 开启后用户可自行注册;关闭后仅管理员添加用户 | | 管理员账号 | 修改超级管理员的用户名、密码(修改密码需输入当前密码) | | 用户管理 | 添加用户、重置密码、删除普通用户 | ### 2.3 添加学生 1. 首页点击 **添加学生** 2. 填写: - **姓名**(必填) - **学段**:初中 / 高中 - **年级**:初一~初三 或 高一~高三 - **班级**:如「3班」(可选) 3. 保存后在卡片上可看到学段标签 ### 2.4 录入成绩 进入学生详情 → **成绩录入** 标签: 1. 点击 **录入成绩** 2. 选择 **考试类型**:周考 / 月考 / 期末 3. 选择 **考试日期** 4. 在表格中填写各科 **总分**、**得分**(未考科目可留空) 5. 系统自动计算 **占比** 6. 保存后在列表中可编辑或删除 **校验规则:** - 总分必须 > 0 - 得分不能大于总分 - 至少录入一科成绩 --- ## 3. 成绩分析 ### 3.1 成绩总览 **成绩总览** 标签以表格展示历次考试各科得分与占比。 - 顶部 **波动预警** 会标记相邻两次占比变化 ≥ 8% 的考试 - 可横向滚动查看所有科目 ### 3.2 分科曲线 **分科曲线** 标签: 1. 选择科目 2. 查看占比(%)随时间变化折线图 **图例说明:** | 元素 | 含义 | |------|------| | 绿色线段 | 较上一次占比 **上升** | | 红色线段 | 较上一次占比 **下降** | | 橙色大圆点 | **大幅波动**(变化 ≥ 8%) | | Tooltip | 显示日期、考试类型、占比、较上次变化 | --- ## 4. 错题库 ### 4.1 上传错题(手机 / 平板) 进入 **错题库** 或 **奥数区** 标签: 1. 选择 **科目** 2. 点击 **拍照上传** 或 **相册选图** 3. 上传后自动:**OCR 识别 → 照片上红框标注错误位置 → 整理题目 → 生成「解题思路」与详细解答** > 标注效果类似作业帮:错误作答处显示红色框和 × 标记。详情页可切换「标注图 / 原图」。 ### 4.2 奥数区 学生详情页 **奥数区** 标签专门存放奥数题: - 按学生**学段**(初中 / 高中)生成奥数解题思路 - **严禁超纲**:初中不用高中/大学方法,高中不用大学高阶理论 - 上传方式与错题库相同,支持拍照 ### 4.3 解题 AI 与学段约束 - **错题库**:按初中/高中**课内**标准解题,禁止超纲 - **奥数区**:按对应学段**奥数培优**范围解题 - 超级管理员可在 **系统设置 → AI 模型** 中选择: - **本地 Ollama**(地址 + 模型名) - **OpenAI 兼容 API**(Base URL + 模型 + API Key) ### 4.4 查看与编辑 点击错题卡片打开详情: - **左侧**:原始试卷图片、OCR 原文 - **右侧**:识别题目、解法(均可编辑) - **保存编辑**:手动修正后点击保存 - **重新 OCR**:识别不准时可重试 - **重新生成解法**:基于当前题目重新调用 AI > 解法标注「AI 生成,请核对」,使用前请人工确认。 ### 4.5 筛选与搜索 - 按 **科目** 筛选 - **搜索** 题目/解法关键词 --- ## 5. 数据导出 学生详情页点击 **导出 CSV**,下载该生全部成绩记录,可用 Excel 打开。 --- ## 6. 预置科目 语文、数学、英语、物理、化学、生物、历史、地理、政治。 --- ## 7. 维护人员:修改代码后如何更新线上 **服务器不在本地构建前端。** 维护或二次开发时,请严格按以下流程发布: ### 只改后端 ```bash git add backend/ git commit -m "说明" git push # 服务器 bash /opt/secondary-school-grade-archive/deploy/update.sh ``` ### 改前端(或前后端都改) ```powershell # Windows:先构建 .\deploy\build-frontend.ps1 ``` ```bash # Linux / macOS:先构建 bash deploy/build-frontend.sh git add frontend/ frontend/dist git commit -m "说明" git push # 服务器 bash /opt/secondary-school-grade-archive/deploy/update.sh ``` 详细说明见 [DEPLOY.md §2](./DEPLOY.md#2-代码修改与发布流程重要) 与 [README](../README.md#修改代码后如何发布必读)。 --- ## 8. 常见问题 **Q:忘记密码怎么办?** A:普通用户请联系超级管理员,在「系统设置 → 用户管理」中重置密码。超级管理员忘记密码需通过数据库或 `.env` 中的 `ADMIN_DEFAULT_*` 配合运维处理。 **Q:多人能否共用一台服务器?** A:可以。每人独立账号,数据互不可见。 **Q:能否同时管理初中和高中孩子?** A:可以。添加学生时分别选择学段即可。 **Q:换手机/电脑能否访问?** A:可以。使用同一服务器地址与账号登录即可。 **Q:HTTPS 和域名怎么配置?** A:本项目不包含反向代理配置,请参考 [DEPLOY.md §8](./DEPLOY.md#8-反向代理用户自行配置) 自行设置。 **Q:改了代码但服务器页面没变化?** A:很可能未在开发机执行 `npm run build` 或未将 `frontend/dist` 推送到仓库。见上文第 7 节。 --- ## 9. 技术支持与版权 | 项目 | 内容 | |------|------| | 作者 | 马建军 | | 微信 | dekun03 | | 手机 | 18364911125 | | 仓库 | [secondary-school-grade-archive](https://git.bz121.com/dekun/secondary-school-grade-archive.git) | 使用本软件须遵守 [LICENSE](../LICENSE) 与 [COPYRIGHT.md](../COPYRIGHT.md)。 商业使用或二次分发请联系作者取得授权。