6.1 KiB
6.1 KiB
学生成绩管理系统 (Student Grade Management System)
这是一个基于 Web 的学生成绩管理系统,旨在为学校提供一个简单、高效的成绩录入、查询和分析平台。系统支持三种角色:管理员、教师和学生,每种角色拥有独立的权限和功能界面。
🛠️ 开发语言与技术栈
本项目采用前后端分离的开发模式(但在部署上整合为一体),技术选型如下:
-
后端 (Backend):
- Runtime: Node.js (>=14.0.0)
- Framework: Express.js 4.x
- Database: SQLite3 (轻量级文件数据库,无需额外安装数据库服务)
- Authentication: Express-Session + BCrypt (安全密码存储)
- Logging: 自定义操作日志记录
-
前端 (Frontend):
- Structure: HTML5
- Styling: CSS3, Bootstrap 5 (响应式设计)
- Scripting: Vanilla JavaScript (ES6+), Fetch API
- Icons: Font Awesome 6
🏗️ 项目架构
项目遵循 MVC (Model-View-Controller) 设计模式,结构清晰,易于维护。
目录结构说明
WebWork/
├── backend/ # 后端核心代码
│ ├── config/ # 配置文件 (数据库连接等)
│ ├── controllers/ # 控制器 (业务逻辑处理)
│ ├── middleware/ # 中间件 (身份验证、错误处理)
│ ├── models/ # 模型层 (数据库操作封装)
│ ├── routes/ # 路由定义 (API 接口)
│ ├── scripts/ # 维护脚本 (数据库迁移、修复数据)
│ ├── services/ # 服务层 (复杂业务逻辑)
│ ├── utils/ # 工具函数
│ ├── server.js # 程序入口
│ └── database.sqlite # SQLite 数据库文件
├── frontend/ # 前端静态资源
│ ├── public/ # 公共资源 (CSS, JS, Images)
│ └── views/ # HTML 页面视图
│ ├── admin/ # 管理员页面
│ ├── auth/ # 认证页面 (登录/注册)
│ ├── student/ # 学生页面
│ └── teacher/ # 教师页面
└── scripts/ # 快捷运行脚本 (Windows .bat)
🧩 功能模块详情
1. 认证模块 (Authentication)
- 登录/注册: 支持学号/工号登录,新用户注册。
- 角色分流: 根据用户角色(学生、教师、管理员)自动跳转至对应的工作台。
- 安全机制: 密码加密存储,会话超时自动登出。
2. 管理员模块 (Admin)
- 仪表板: 查看系统概览(用户总数、课程数等)。
- 用户管理:
- 学生管理: 查看、编辑、删除学生信息。
- 教师管理: 查看、编辑、删除教师信息,自动补全教师职级/部门信息。
- 分页优化: 支持智能分页与快速跳转。
- 成绩统计: 全校/全班成绩概览与分析。
- 系统设置:
- 设置当前学期。
- 开启/关闭选课与查分功能。
- 数据维护(数据库备份、缓存清理、重置密码)。
- 数据导出: 支持导出学生、教师、成绩数据为 Excel 兼容的 CSV 格式。
- 操作日志: 审计系统内的关键操作记录。
3. 教师模块 (Teacher)
- 我的课程: 查看所教授的课程列表。
- 成绩录入: 在线录入、修改学生成绩。
- 成绩管理: 查看班级成绩单,分析及格率与平均分。
4. 学生模块 (Student)
- 我的成绩: 查询个人各科成绩、绩点 (GPA)。
- 成绩分析: 可视化展示成绩分布与趋势。
- 个人信息: 查看与编辑个人资料。
🚀 部署与运行方式
本项目无需复杂的环境配置,确保安装 Node.js 即可运行。
环境要求
- Node.js: v14.0.0 或更高版本
- OS: Windows / macOS / Linux
安装步骤
- 克隆/下载项目 到本地目录。
- 安装依赖:
打开终端(命令行),进入
backend目录并运行:cd backend npm install
数据库初始化 (首次运行)
如果项目根目录下没有 database.sqlite 文件,或者需要重置数据库,请运行:
node backend/init_db.js
注:该脚本会自动创建表结构并填充测试数据。
启动项目
方式一:使用快捷脚本 (Windows)
直接双击项目根目录下的 scripts/start.bat 即可启动。
方式二:命令行启动
在 backend 目录下运行:
npm start
启动成功后,打开浏览器访问: 👉 http://localhost:3000
测试用户
. 管理员账号 (Admin)
- 账号: admin
- 密码: 123456
- 角色选择: 管理员
2. 教师账号 (Teacher)
系统共生成了 20 位教师,账号格式为 T + 1001-1020 。
- 样例 1:
- 账号: T1001
- 密码: 123456
- 角色选择: 教师
- 样例 2:
- 账号: T1015
- 密码: 123456
- 角色选择: 教师
3. 学生账号 (Student)
系统共生成了 500 名学生,分布在 2021 级和 2022 级,共 10 个班级。
- 2021 级样例 (班级 01):
- 账号: 202101001 (格式:年份+班级编号+序号)
- 密码: 123456
- 角色选择: 学生
- 2022 级样例 (班级 06):
- 账号: 202206005
- 密码: 123456
- 角色选择: 学生
🔧 常见维护操作
-
备份数据库: 系统会自动在
backend/backups/目录下创建数据库备份。管理员也可以在“系统设置”中手动备份。 -
修复数据: 如果发现教师数据缺失(如部门、职称),可运行修复脚本:
node backend/scripts/fix_teachers.js -
数据库迁移: 如果进行了版本更新(如添加新表),请按顺序运行
scripts/目录下的migrate_vX.js脚本。
📝 开发日志
- V1.0: 基础功能实现(登录、成绩录入、查询)。
- V2.0: 迁移至 SQLite,增加系统设置与操作日志。
- V3.0: 完善教师管理,优化分页体验,增强数据导出功能。
© 2023-2024 学生成绩管理系统 | Designed for Efficiency