Made By GLM 5.2
上海赋分制 · 多用户隔离 · 个人专属成绩管理平台
- 支持 6 种考试类型:月考5门 / 月考6门 / 期中10门 / 期末10门 / 期中6门 / 期末6门 / 自定义
- 上海赋分制(A+/A/B+/B/B-/C+/C/C-/D+/D/E → 70/67/64/61/58/55/52/49/46/43/40)
- 小分系统:数学固定21题,其他科目自由添加
- 分数范围校验:超满分自动修正
- 4 种角色:超级管理员 / 管理员 / 普通用户 / 测试用户
- 每个用户只能访问自己的数据
- 管理员可管理自己创建的小组成员
- 超级管理员可管理所有用户
- CSV 批量导入学生(默认密码 123456,首次登录强制修改)
- 小组创建者管理,可授权其他管理员查看
- 小组成绩分析(总分对比/趋势/单科/雷达/进步榜/薄弱点预警)
- 3 种格式导出(Excel/PDF/Word)
- 多目标公告(全体/多小组/多用户,支持按小组批量导入用户)
- 公告已读统计
- 学习计划到期自动提醒
- 通知中心(铃铛实时刷新未读数)
- 管理员发布学习计划给小组
- 学生标记完成,管理员查看完成度
- 附件上传(PDF 等,最大 20MB)
- 日历视图(个人计划 + 小组计划)
- 9 种图表:单科趋势 / 总分趋势 / 排名变化 / 学科雷达 / 学科对比 / 进退步热力图 / 分科前后对比 / 时间段对比 / 科目进步榜
- 小三门的得分率按原始分计算
- 赋分总分满分按 70 算(语数英150×3 + 小三门70×3 = 660)
- Excel:横排格式(科目/分数/班排/年排/赋分/等级),冻结首行 + 筛选
- PDF:中文报告(浏览器打印为 PDF)
- 用户成绩导出(管理员/超管)
- 小组分析导出(Excel/PDF/Word)
- 数据库备份/恢复(仅超管)
- 暗色/亮色主题切换
- 移动端手势导航(左右滑动切换页面)
- PWA 支持(可添加到手机主屏)
- 会话 2 小时自动过期
- 下次考试日期设置(用户自设 / 管理员统一设)
- Node.js 18+ 或 Bun
- npm 或 Bun 包管理器
# 1. 安装依赖
bun install
# 或
npm install
# 2. 初始化数据库(首次运行)
# 将 db/default.db 复制为 db/custom.db
cp db/default.db db/custom.db
# 3. 生成 Prisma Client
bun run db:generate
# 或
npx prisma generate
# 4. 启动开发服务器
bun run dev
# 或
npm run dev
# 5. 打开浏览器访问 http://localhost:3000双击 start.bat 即可自动安装依赖、初始化数据库、启动服务。
| 角色 | 用户名 | 密码 | 说明 |
|---|---|---|---|
| 超级管理员 | system | 123456 | 首次登录强制修改密码 |
首次登录后会要求修改密码,修改后重新登录即可使用。
- 框架: Next.js 16 (App Router + Turbopack)
- 语言: TypeScript 5
- 样式: Tailwind CSS 4 + shadcn/ui
- 数据库: Prisma ORM + SQLite
- 图表: Recharts
- 导出: ExcelJS / jsPDF / docx
- 认证: bcryptjs + Cookie Session(2小时 TTL)
- 状态: TanStack Query + Zustand
├── db/ # SQLite 数据库文件
│ ├── default.db # 初始化数据库(仅含 system 超管)
│ └── custom.db # 运行时数据库(从 default.db 复制)
├── prisma/
│ └── schema.prisma # 数据库模型定义
├── src/
│ ├── app/
│ │ ├── api/ # API 路由(30+ 个)
│ │ ├── globals.css # 全局样式
│ │ ├── layout.tsx # 根布局
│ │ └── page.tsx # 主页面
│ ├── components/
│ │ ├── score-app/ # 成绩分析系统组件(23 个)
│ │ └── ui/ # shadcn/ui 基础组件
│ └── lib/
│ ├── auth.ts # 认证与权限
│ ├── constants.ts # 学科/考试类型常量
│ ├── db.ts # Prisma 客户端
│ └── grade-system.ts # 赋分等级表
├── public/ # PWA 资源(manifest/sw/icons)
├── uploads/ # 附件存储目录
├── scripts/ # 初始化脚本
├── start.bat # Windows 一键启动
└── package.json
| 类型 | 科目 | 适用场景 |
|---|---|---|
| 月考5门 | 语数英物化 | 高一上10月/12月,高一下3月 |
| 月考6门 | 语数英 + 自选小三门 | 高一下5月起 |
| 期中10门 | 语数英物化生史地政+信息 | 高一上11月,高一下4月 |
| 期末10门 | 同上 | 高一上1月,高一下6月 |
| 期中6门 | 语数英 + 自选小三门 | 高二起 |
| 期末6门 | 同上 | 高二起 |
| 自定义 | 自由选择 | 周测/模拟考等 |
| 等级 | A+ | A | B+ | B | B- | C+ | C | C- | D+ | D | E |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 分值 | 70 | 67 | 64 | 61 | 58 | 55 | 52 | 49 | 46 | 43 | 40 |
赋分科目:物理、化学、生物、历史、地理、政治(6选3)
语数英始终用原始分(满分150),信息技术不参与赋分。
GNU Affero General Public License v3.0