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