logo
1
0
WeChat Login

学生成绩管理系统 项目任务详情与需求规格说明书

一、项目总览

1.1 项目名称

学生成绩管理系统V1.0(专科毕业设计满分级商用落地版本)

1.2 项目背景

随着教育信息化深度推进,院校学生规模、课程种类持续扩张,成绩数据呈现海量增长、维度多元的特征。传统人工记录、Excel表格管理模式存在操作繁琐、统计低效、权限混乱、数据易丢失、信息传递滞后、无法深度分析等核心痛点;现有市面产品要么功能冗余、部署维护成本高,要么过于简易、无法适配国内院校本土化业务场景,轻量化、高可用、全流程覆盖的专用成绩管理系统存在明确的落地需求。

1.3 项目核心目标

  1. 业务目标:开发一套覆盖管理员、教师、学生三类核心角色,贯穿成绩录入-校验-发布-查询-申诉-分析全流程的学生成绩管理系统,彻底解决传统管理模式的痛点,满足院校教务管理、教师教学、学生学习的全场景真实业务需求,而非简易Demo。
  2. 技术目标:采用前后端分离架构,前端基于Semi Design企业级UI框架构建,后端基于Python Django生态开发,集成Redis实现高性能缓存与架构优化,支持SQLite(开发环境)/MySQL(生产环境)双数据库无缝切换,保障系统高可用、高安全、高可扩展,达到商用级系统标准。
  3. 毕业设计目标:完整覆盖毕业论文的研究内容,实现所有设计功能,具备完善的文档、规范的代码、可落地的部署能力,满足专科毕业设计满分评审标准,具备技术创新性与业务实用性。

1.4 项目范围

  • 覆盖范围:院校学生成绩管理全业务流程,包含统一认证、组织架构管理、课程管理、成绩全生命周期管理、统计分析、成绩申诉、系统管理、日志审计核心模块。
  • 终端范围:PC端Web应用,适配主流浏览器与分辨率,基于Semi Design实现响应式布局。
  • 排除范围:移动端APP、在线考试、线上教学等非成绩管理核心功能,避免功能冗余,聚焦核心业务深度实现。

二、项目可行性分析

2.1 经济可行性

本项目所有技术栈均采用开源免费方案,无商用版权费用,开发仅需普通办公电脑即可完成,硬件与软件成本极低;系统投入使用后,可大幅降低教务人员、教师的人工操作成本,减少成绩管理的人力投入,长期收益显著,完全满足经济可行性要求。

2.2 操作可行性

前端采用Semi Design字节跳动企业级UI设计规范,界面交互符合国内中后台系统用户操作习惯,功能入口清晰,关键操作有引导提示,异常场景有友好反馈;教师端支持一键批量导入、自动核算成绩,学生端可一键查询成绩、导出成绩单,管理员端支持批量数据管理,无复杂操作门槛,适配院校师生的信息化操作水平,满足操作可行性。

2.3 技术可行性

本项目采用的技术栈均为行业成熟稳定的主流方案,拥有完善的官方文档、活跃的社区生态与大量最佳实践案例,技术落地无壁垒:

  • 后端:Python 3.10+、Django 4.2 LTS(长期支持版)、Django REST Framework,成熟的Web开发生态,内置ORM、认证、权限体系,开发效率高、稳定性强。
  • 前端:React 18 + TypeScript + Semi Design,强类型保障代码健壮性,Semi Design提供完整的中后台组件库,可快速构建规范、易用的前端界面。
  • 数据层:MySQL 8.0+(生产环境)/SQLite3(开发环境),成熟的关系型数据库,适配教育类系统数据存储需求;Redis 6.0+实现缓存、限流、分布式锁,大幅提升系统性能与并发能力。
  • 配套工具:Celery实现异步任务(批量导入、定时备份)、Nginx实现反向代理、Docker实现容器化部署,均为行业通用方案,技术可行性完全达标。

2.4 法律合规可行性

系统设计严格遵循《中华人民共和国个人信息保护法》《教育数据安全管理规范》等法律法规,通过数据加密存储、传输、脱敏展示、细粒度权限管控、全量操作日志审计等功能,保障学生个人信息与成绩数据的安全,留存日志满足合规要求,无法律合规风险。

三、总体需求规格

3.1 用户角色与权限边界

系统采用RBAC(基于角色的访问控制)模型,设置4类核心角色,权限边界清晰,杜绝越权操作:

角色核心权限范围
超级管理员系统最高权限,负责全系统用户管理、组织架构管理、课程管理、系统配置、数据备份恢复、日志审计、全量数据查看与管理
院系管理员所属院系的教师/学生账号管理、课程管理、数据统计、成绩监管,无系统全局配置权限
教师个人授课课程管理、成绩录入/修改/发布、成绩统计分析、学生成绩申诉处理、班级通知发布
学生个人信息管理、课程查询、个人成绩查询、成绩单导出、成绩申诉、个人学业分析

3.2 功能性需求(核心模块全量定义)

模块一:统一认证与会话管理模块

本模块为系统入口,集成Redis实现高性能会话管理,核心功能包括:

  1. 用户登录:支持账号密码登录、图形验证码防暴力破解;登录失败5次自动锁定账号10分钟;登录成功后生成会话Token,存入Redis缓存,支持会话过期自动刷新、退出登录销毁会话。
  2. 用户注册:支持学生/教师账号注册,需填写工号/学号、真实姓名、邮箱,选择用户类型,邮箱验证通过后完成注册,注册账号需管理员审核后启用。
  3. 密码管理:支持密码加密存储(采用Argon2加密算法,禁止明文存储)、登录后修改密码、忘记密码通过邮箱验证码重置。
  4. 身份鉴权:全局请求拦截,基于Redis缓存的用户角色与权限信息,实现接口级权限校验,拦截越权请求;支持菜单级权限动态渲染,不同角色展示对应功能菜单。
  5. 个人中心:全角色通用,支持查看/修改个人基础信息、头像上传、密码修改、查看个人操作日志。

模块二:系统管理模块(管理员核心)

  1. 用户全生命周期管理
    • 支持管理员、教师、学生三类用户的账号新增、编辑、删除、启用/禁用、密码重置;
    • 支持学生/教师账号批量Excel导入导出,自动关联院系、专业、班级信息;
    • 支持账号注册审核,可查看待审核账号列表,执行通过/驳回操作。
  2. 组织架构管理
    • 支持院系、专业、班级三级树形架构管理,实现增删改查、排序、层级关联;
    • 支持班级班主任分配、学生人数统计、年级管理,数据与学生信息自动联动。
  3. 学年学期管理
    • 支持学年、学期配置,设置学期起止日期、是否为当前学期;
    • 所有课程、成绩数据均关联学期,支持按学期筛选数据,适配院校学年制管理模式。
  4. 课程信息管理
    • 支持课程全生命周期管理,维护课程编号、名称、学分、学时、考核方式、开课院系、课程大纲等核心信息;
    • 支持课程批量导入导出,授课教师分配,课程与学期、班级、教师的关联管理。
  5. 系统配置管理
    • 支持系统基础配置:系统名称、logo、备案信息、页脚信息自定义;
    • 支持安全配置:密码复杂度策略、会话超时时间、账号锁定规则配置;
    • 支持业务配置:成绩等级划分标准、成绩占比默认值、申诉时效配置。
  6. 数据备份与恢复
    • 支持手动备份、定时自动备份数据库,备份文件支持本地存储与异地备份;
    • 支持备份文件列表管理、一键恢复、备份文件下载与删除,保障数据安全。
  7. 操作日志与审计
    • 全量记录所有用户的操作日志,包含操作人、操作模块、操作类型、请求参数、响应结果、操作IP、操作时间、耗时、操作状态;
    • 支持日志多条件组合查询、导出、留存,日志不可篡改,留存时长≥6个月;
    • 支持异常操作告警,识别高频失败请求、越权操作等异常行为并标记。

模块三:教师业务模块(核心业务深度实现)

  1. 教师工作台
    • 可视化仪表盘,展示待办事项(未录入成绩的课程、待处理的成绩申诉)、本学期授课课程概览、班级成绩统计、及格率/优秀率核心指标;
    • 快捷功能入口,一键跳转成绩录入、申诉处理、统计分析核心功能。
  2. 我的课程管理
    • 查看本人本学期/历史学期的授课课程列表,查看课程详情、课程大纲维护、授课班级管理;
    • 查看对应课程的学生名单,支持按班级筛选、学生信息导出。
  3. 成绩全生命周期管理
    • 成绩录入:支持单个成绩行内编辑录入、Excel模板批量导入;支持平时成绩、期中成绩、期末成绩、实践成绩等多维度分项录入,可自定义各分项占比,系统自动计算总成绩、成绩等级。
    • 成绩校验:自动校验成绩合法性(0-100分区间校验),支持缺考、缓考、作弊等特殊状态标记,异常成绩自动预警,禁止非法数据提交。
    • 成绩修改与锁定:成绩录入后支持修改,修改操作全程留痕;提交后可锁定成绩,锁定后非管理员审批无法修改,杜绝成绩篡改风险。
    • 成绩发布:支持设置发布时间,一键发布成绩到学生端;发布后学生可查看对应成绩,未发布成绩学生不可见。
  4. 成绩统计与可视化分析
    • 单课程统计:自动计算课程平均分、最高分、最低分、及格率、优秀率、分数段分布,生成柱状图、饼图可视化报表。
    • 多维度对比:支持同课程不同班级的成绩对比、同一班级不同学期的成绩趋势对比、历年授课课程成绩数据分析。
    • 报表导出:支持统计报表、班级成绩表导出为Excel/PDF格式,适配教师教学汇报、教务存档需求。
  5. 成绩申诉处理
    • 查看学生提交的成绩申诉列表,查看申诉详情、学生提交的佐证材料;
    • 在线审核申诉,支持通过/驳回操作,填写处理意见,修改成绩后自动同步至学生端,处理全程留痕。
  6. 通知公告管理
    • 向授课班级学生发布成绩相关通知,支持设置发布范围、发布时间;
    • 查看通知的已读/未读状态,支持撤回、编辑通知。

模块四:学生业务模块

  1. 学生工作台
    • 个人学业仪表盘,展示本学期课程概览、已发布成绩提醒、申诉进度提醒、不及格课程预警、学分完成进度。
  2. 个人信息与课程管理
    • 查看/修改个人基础信息,核对学籍信息、班级、专业、院系信息,修改登录密码;
    • 查看本学期/历史学期的选课列表,查看课程详情、学分、学时、授课教师、上课时间、课程大纲。
  3. 成绩查询与管理
    • 按学期、学年、课程类型筛选个人成绩,查看各分项成绩、总成绩、成绩等级、班级排名、专业排名;
    • 支持个人成绩单一键导出为PDF格式,支持打印;
    • 对有异议的成绩,在申诉时效内提交申诉,填写申诉理由,上传佐证材料,查看申诉进度与处理结果。
  4. 学业分析与预警
    • 个人学业趋势分析:查看各学期平均分、绩点变化趋势图,学分完成进度跟踪;
    • 学业预警:自动标记不及格课程、学分不足风险,提醒补考、重修事项;
    • 学习短板分析:基于历史成绩数据,分析薄弱课程与知识模块,给出学习改进建议。

模块五:Redis高性能支撑模块(核心技术亮点,非Demo级实现)

本模块为系统高性能、高并发的核心支撑,Redis应用场景全落地,核心设计如下:

缓存分类缓存Key设计缓存内容过期时间更新策略
用户会话缓存user:session:{token}用户基本信息、角色权限、菜单列表2小时登录时写入,退出时删除;每次操作刷新过期时间
热点用户信息缓存user:info:{userId}用户基础信息、关联的教师/学生详情1小时用户信息修改时删除缓存,重新查询时写入
系统配置缓存sys:config:all全量系统配置项键值对24小时配置修改时全量更新缓存
课程信息缓存edu:course:{courseId}课程基础详情、授课教师信息12小时课程信息修改时删除缓存,重新查询写入
已发布成绩缓存edu:score:published:{studentId}:{semesterId}学生对应学期已发布的成绩列表30分钟成绩发布/修改时删除对应缓存
接口限流缓存rate:limit:{ip}:{api}接口请求次数1分钟滑动窗口限流,过期自动清理
分布式锁lock:{business}:{id}锁持有者信息30秒(自动续期)业务执行完成释放,超时自动释放

Redis附加能力实现

  1. 基于Redis实现接口限流,防止恶意请求与爬虫攻击,保障系统稳定性;
  2. 基于Redis实现分布式锁,解决批量成绩导入、数据备份、定时任务等并发场景的数据异常问题;
  3. 基于Redis实现Celery异步任务队列,处理Excel批量导入、邮件发送、定时数据备份等耗时操作,避免接口阻塞。

3.3 非功能性需求(满分毕业设计核心考核项)

3.3.1 性能需求

  • 页面响应:常规页面加载时间≤2s,数据查询页面≤3s,万级数据批量导入导出≤10s;
  • 并发能力:支持≥500用户同时在线,≥100并发请求无卡顿、无数据异常、无接口超时;
  • 数据库性能:单表万级数据查询响应≤1s,多表联合查询≤2s,核心查询字段均建立合理索引;
  • 缓存性能:Redis热点数据缓存命中率≥95%,大幅降低数据库查询压力。

3.3.2 安全性需求

  • 身份安全:密码采用Argon2算法加密存储,禁止明文;登录失败次数限制、账号自动锁定;支持HTTPS传输加密;
  • 权限安全:基于RBAC模型实现细粒度权限管控,垂直权限与水平权限双重防护,彻底杜绝越权操作;
  • 数据安全:学生敏感信息(手机号、身份证号)加密存储、前端脱敏展示;数据库定期备份,防止数据丢失;
  • 攻防安全:防SQL注入、XSS跨站脚本攻击、CSRF跨站请求伪造、文件上传漏洞,通过OWASP Top 10安全检测;
  • 日志安全:所有修改、删除、成绩变更操作全程留痕,操作日志不可篡改,满足审计与溯源要求。

3.3.3 易用性需求

  • 前端严格遵循Semi Design企业级UI设计规范,界面风格统一、交互友好,符合国内中后台系统用户操作习惯;
  • 关键操作有引导提示,异常操作有清晰的报错信息与解决方案,无操作门槛;
  • 响应式布局,适配1366*768及以上所有PC端分辨率,兼容Chrome、Edge、Firefox、Safari最新2个版本浏览器;
  • 支持全键盘操作,表格、表单均支持快捷键操作,提升高频操作效率。

3.3.4 可维护性与可扩展性需求

  • 前后端分离架构,模块拆分清晰,低耦合高内聚,支持功能模块化扩展;
  • 代码遵循行业编码规范,注释覆盖率≥30%,核心业务逻辑、复杂函数均有详细注释;
  • 数据库设计符合第三范式,预留扩展字段,支持业务迭代与字段新增,无需重构表结构;
  • 支持SQLite(开发环境)与MySQL(生产环境)无缝切换,适配不同部署场景;
  • 支持主题定制,基于Semi Design的主题能力,可快速切换系统主题风格。

3.3.5 可靠性需求

  • 系统全年可用率≥99.5%,平均无故障时间≥30天;
  • 异常操作有事务回滚机制,防止数据损坏与不一致;
  • 完善的异常处理机制,系统运行异常不崩溃,有清晰的错误日志,便于排查问题。

四、系统总体架构设计

本系统采用前后端分离的B/S架构,分层设计清晰,各层解耦,具备高可维护性与可扩展性,整体架构从上到下分为6层,具体设计如下:

4.1 接入层

  • 核心组件:Nginx反向代理服务器
  • 核心能力:HTTPS SSL终止、静态资源分发、API请求转发、负载均衡、跨域处理、静态资源缓存、请求限流。

4.2 前端应用层

核心技术栈:React 18 + TypeScript + Semi Design + Vite + Axios + React Router v6 + ECharts + Redux Toolkit 模块拆分

  1. 基础层:布局组件、公共组件、工具函数、请求封装、全局状态管理;
  2. 认证模块:登录页、注册页、忘记密码页、权限拦截组件;
  3. 管理员模块:所有管理员端页面与业务逻辑;
  4. 教师模块:所有教师端页面与业务逻辑;
  5. 学生模块:所有学生端页面与业务逻辑;
  6. 可视化模块:基于ECharts与Semi Design图表组件实现的统计分析看板。

Semi Design落地规范

  • 统一采用Semi Design的Layout布局组件实现“顶部导航+侧边菜单+主内容区”的中后台通用布局;
  • 表单、表格、弹窗、抽屉、通知、提示等所有交互组件均采用Semi Design原生组件,保证交互一致性;
  • 严格遵循Semi Design的色彩体系、字体规范、间距规范,杜绝自定义样式破坏设计统一性;
  • 基于Semi Form组件实现统一的表单校验、提交、重置逻辑,基于Semi Table实现排序、筛选、分页、批量操作、行内编辑等能力。

4.3 后端应用层

核心技术栈:Python 3.10+ + Django 4.2 LTS + Django REST Framework + Celery 分层设计

  1. 接口层:API视图层,负责请求接收、参数校验、权限校验、响应返回,统一响应格式与错误码体系;
  2. 业务层:Service服务层,封装所有核心业务逻辑,解耦视图与数据层,提升代码复用性;
  3. 数据访问层:ORM模型层,基于Django ORM实现与数据库的交互,封装数据增删改查操作,禁止原生SQL拼接;
  4. 公共组件层:认证组件、权限组件、缓存组件、日志组件、异常处理组件、文件上传组件,全局统一复用。

4.4 缓存层

  • 核心组件:Redis 6.0+
  • 核心能力:会话缓存、热点数据缓存、接口限流、分布式锁、异步任务队列Broker、数据字典缓存。

4.5 数据持久层

  • 主数据库:MySQL 8.0+(生产环境),InnoDB引擎,负责全量业务数据持久化存储;
  • 开发数据库:SQLite3,轻量级单文件数据库,无需额外配置,适配本地开发环境;
  • 备份存储:本地文件存储+可选云对象存储,负责数据库备份文件存储。

4.6 基础设施层

  • 支持部署环境:Linux(CentOS 7+/Ubuntu 20.04+)、Windows、macOS;
  • 容器化支持:Docker + Docker Compose,实现一键容器化部署,统一环境配置;
  • 硬件要求:开发环境仅需普通办公电脑,生产环境最低配置2核4G云服务器即可稳定运行。

五、数据库详细设计

5.1 数据库基础规范

  • 数据库名:student_score_management
  • 字符集:utf8mb4,排序规则:utf8mb4_unicode_ci
  • 存储引擎:InnoDB,支持事务、行级锁、外键关联,保障数据一致性
  • 设计规范:所有表均包含主键、创建时间、更新时间、逻辑删除字段,符合第三范式,避免数据冗余

5.2 核心数据表详细设计

1. 系统用户表 sys_user

字段名数据类型长度主键非空唯一字段说明
idbigint-自增主键,用户ID
usernamevarchar50登录用户名(学号/工号)
passwordvarchar255加密存储的密码
real_namevarchar20用户真实姓名
user_typetinyint1用户类型:1-超级管理员 2-院系管理员 3-教师 4-学生
emailvarchar100电子邮箱,用于验证与密码重置
phonevarchar11联系电话
avatarvarchar255头像地址
statustinyint1账号状态:0-禁用 1-正常 2-锁定
last_login_timedatetime-最后登录时间
last_login_ipvarchar50最后登录IP
created_atdatetime-创建时间
updated_atdatetime-更新时间
is_deletedtinyint1逻辑删除:0-未删除 1-已删除

2. 院系信息表 sys_department

字段名数据类型长度主键非空唯一字段说明
idbigint-自增主键,院系ID
dept_codevarchar20院系编号
dept_namevarchar50院系名称
parent_idbigint-父级ID,顶级院系为0
sortint-排序序号
descriptiontext-院系描述
created_atdatetime-创建时间
updated_atdatetime-更新时间
is_deletedtinyint1逻辑删除

3. 专业信息表 sys_major

字段名数据类型长度主键非空唯一字段说明
idbigint-自增主键,专业ID
major_codevarchar20专业编号
major_namevarchar50专业名称
dept_idbigint-所属院系ID,关联sys_department.id
study_yearint-学制(年)
descriptiontext-专业描述
created_atdatetime-创建时间
updated_atdatetime-更新时间
is_deletedtinyint1逻辑删除

4. 班级信息表 sys_class

字段名数据类型长度主键非空唯一字段说明
idbigint-自增主键,班级ID
class_codevarchar20班级编号
class_namevarchar50班级名称
major_idbigint-所属专业ID,关联sys_major.id
dept_idbigint-所属院系ID
gradeint-年级
head_teacher_idbigint-班主任ID,关联sys_user.id
student_countint-学生人数
created_atdatetime-创建时间
updated_atdatetime-更新时间
is_deletedtinyint1逻辑删除

5. 学年学期表 sys_semester

字段名数据类型长度主键非空唯一字段说明
idbigint-自增主键
academic_yearvarchar20学年,如2025-2026
semestertinyint1学期:1-第一学期 2-第二学期
start_datedate-学期开始日期
end_datedate-学期结束日期
is_currenttinyint1是否当前学期:0-否 1-是
created_atdatetime-创建时间
updated_atdatetime-更新时间
is_deletedtinyint1逻辑删除

6. 课程信息表 edu_course

字段名数据类型长度主键非空唯一字段说明
idbigint-自增主键,课程ID
course_codevarchar20课程编号
course_namevarchar100课程名称
creditfloat-课程学分
hoursint-总学时
exam_typetinyint1考核方式:1-考试 2-考查
dept_idbigint-开课院系ID
descriptiontext-课程描述
syllabustext-课程大纲
created_atdatetime-创建时间
updated_atdatetime-更新时间
is_deletedtinyint1逻辑删除

7. 教师授课表 edu_teacher_course

字段名数据类型长度主键非空唯一字段说明
idbigint-自增主键
teacher_idbigint-教师用户ID,关联sys_user.id
course_idbigint-课程ID,关联edu_course.id
semester_idbigint-学期ID,关联sys_semester.id
class_idbigint-授课班级ID,关联sys_class.id
daily_score_ratioint-平时成绩占比(%),默认30
mid_score_ratioint-期中成绩占比(%),默认20
final_score_ratioint-期末成绩占比(%),默认50
created_atdatetime-创建时间
updated_atdatetime-更新时间
is_deletedtinyint1逻辑删除
联合唯一索引teacher_id + course_id + semester_id + class_id

8. 学生信息表 edu_student

字段名数据类型长度主键非空唯一字段说明
idbigint-自增主键
user_idbigint-关联用户ID,sys_user.id
student_novarchar20学号
class_idbigint-所属班级ID,关联sys_class.id
major_idbigint-所属专业ID
dept_idbigint-所属院系ID
gradeint-入学年份/年级
gendertinyint1性别:1-男 2-女
birth_datedate-出生日期
addressvarchar255联系地址
emergency_contactvarchar20紧急联系人
emergency_phonevarchar11紧急联系电话
enrollment_datedate-入学日期
graduation_datedate-毕业日期
created_atdatetime-创建时间
updated_atdatetime-更新时间
is_deletedtinyint1逻辑删除

9. 学生选课表 edu_student_course

字段名数据类型长度主键非空唯一字段说明
idbigint-自增主键
student_idbigint-学生ID,关联edu_student.id
teacher_course_idbigint-教师授课ID,关联edu_teacher_course.id
course_idbigint-课程ID
semester_idbigint-学期ID
created_atdatetime-创建时间
updated_atdatetime-更新时间
is_deletedtinyint1逻辑删除
联合唯一索引student_id + teacher_course_id

10. 学生成绩表 edu_student_score

字段名数据类型长度主键非空唯一字段说明
idbigint-自增主键
student_course_idbigint-学生选课ID,关联edu_student_course.id
student_idbigint-学生ID
course_idbigint-课程ID
semester_idbigint-学期ID
daily_scorefloat-平时成绩
mid_scorefloat-期中成绩
final_scorefloat-期末成绩
total_scorefloat-总成绩(系统自动计算)
score_levelvarchar10成绩等级:优秀/良好/中等/及格/不及格
rank_classint-班级排名
rank_majorint-专业排名
statustinyint1成绩状态:0-未录入 1-已录入 2-已锁定 3-已发布 4-已申诉
exam_statustinyint1考试状态:1-正常 2-缺考 3-缓考 4-作弊
created_bybigint-创建人(教师ID)
updated_bybigint-最后修改人ID
created_atdatetime-创建时间
updated_atdatetime-更新时间
is_deletedtinyint1逻辑删除

11. 成绩申诉表 edu_score_appeal

字段名数据类型长度主键非空唯一字段说明
idbigint-自增主键
student_idbigint-申诉学生ID
score_idbigint-关联成绩ID,edu_student_score.id
course_idbigint-课程ID
appeal_reasontext-申诉理由
proof_filevarchar255佐证材料附件地址
statustinyint1申诉状态:0-待处理 1-已通过 2-已驳回
handler_idbigint-处理人ID(教师/管理员)
handle_opiniontext-处理意见
handle_timedatetime-处理时间
created_atdatetime-申请时间
updated_atdatetime-更新时间

12. 系统操作日志表 sys_operation_log

字段名数据类型长度主键非空唯一字段说明
idbigint-自增主键
user_idbigint-操作用户ID
usernamevarchar50操作用户名
user_typetinyint1用户类型
modulevarchar50操作模块
operationvarchar50操作类型
ipvarchar50操作IP
addressvarchar100操作地址
request_methodvarchar10请求方式
request_urlvarchar255请求地址
request_paramtext-请求参数
response_resulttext-响应结果
statustinyint1操作状态:0-失败 1-成功
error_msgtext-错误信息
operation_timedatetime-操作时间
cost_timeint-耗时(毫秒)

补充表:系统公告表、公告已读表、系统配置表,作为扩展表,保障功能完整性,设计规范与上述表一致。

六、项目开发与交付规范

6.1 代码开发规范

  1. 后端Python代码严格遵循PEP8编码规范,使用Black格式化、Flake8代码检查,核心业务逻辑注释覆盖率≥30%;
  2. 前端TypeScript代码遵循Airbnb React编码规范,使用ESLint+Prettier格式化,组件化开发,禁止冗余代码;
  3. 前后端接口遵循RESTful API规范,统一响应格式,统一错误码体系,所有接口均有详细文档;
  4. 数据库操作使用Django ORM,禁止原生SQL拼接,防止SQL注入;所有修改、删除操作均使用事务,保障数据一致性;
  5. 代码使用Git进行版本管理,遵循Git Flow分支规范,master分支存放正式代码,develop分支为开发主分支,feature分支为功能开发分支。

6.2 满分级项目交付物清单

交付类别详细交付内容
项目源代码前端完整源码、后端完整源码、数据库初始化脚本、Docker部署脚本、一键启动脚本
项目文档需求规格说明书(本文档)、系统设计说明书、数据库设计说明书、用户操作手册、部署手册、测试报告、接口文档
毕业设计材料毕业论文终稿、开题报告、中期检查报告、答辩PPT、系统演示视频、功能全量截图
可运行程序系统打包安装包、Docker镜像、Windows/Linux一键部署包

6.3 部署要求

  1. 支持两种部署模式:本地开发环境一键部署、生产环境Docker容器化部署;
  2. 提供完整的部署文档,包含环境搭建、依赖安装、数据库初始化、服务启动、HTTPS配置、常见问题排查全流程说明;
  3. 生产环境部署基于Nginx+Gunicorn+Django+MySQL+Redis,保障系统稳定运行,支持7*24小时不间断服务。

七、测试与验收标准

7.1 测试标准

测试类型达标要求
单元测试核心业务函数单元测试覆盖率≥80%,所有测试用例100%通过
功能测试所有需求功能点100%实现,测试用例通过率100%,无阻塞性bug,一般bug≤2个
接口测试所有API接口功能正常,参数校验完善,异常场景处理正确,接口文档与实际功能一致
性能测试满足3.3.1节所有性能指标,100并发无异常,无数据丢失,响应时间达标
安全性测试通过OWASP Top 10安全检测,无高危安全漏洞,权限控制无越权,数据加密符合规范
兼容性测试主流浏览器运行正常,无样式错乱、功能异常,适配所有PC端主流分辨率

7.2 毕业设计满分验收标准

  1. 功能完整性:需求规格说明书中所有功能点100%落地实现,无遗漏,业务流程全闭环,而非简易Demo;
  2. 技术先进性:完整实现前后端分离架构,Semi Design前端框架规范落地,Redis缓存全场景应用,技术栈符合行业主流标准,具备技术亮点;
  3. 系统稳定性:系统可稳定运行,无崩溃、无数据异常、无安全漏洞,满足商用级系统的稳定性要求;
  4. 文档完整性:所有交付文档齐全,内容完整,逻辑清晰,符合专科毕业设计的文档规范,与系统实现完全一致;
  5. 业务实用性:系统可直接应用于院校实际成绩管理场景,完全适配国内院校的业务流程,解决传统管理模式的核心痛点;
  6. 代码规范性:代码结构清晰,遵循行业编码规范,注释完善,可维护性、可扩展性强,无冗余代码、无安全隐患。

八、项目里程碑与进度计划

阶段周期核心工作内容阶段交付物
需求与设计阶段第1-2周需求调研与确认、需求文档编写、系统架构设计、数据库设计、UI原型设计需求规格说明书、系统设计文档、数据库设计文档、UI原型图
开发准备阶段第3周开发环境搭建、前后端项目脚手架搭建、Git仓库配置、数据库初始化、技术预研Demo开发项目工程脚手架、数据库初始化脚本、开发环境配置文档
后端核心开发第4-6周数据库模型开发、认证与权限模块开发、核心业务接口开发、Redis缓存模块开发、异步任务开发、接口文档编写后端完整接口、接口文档、单元测试用例
前端核心开发第5-7周前端项目搭建、公共组件开发、认证模块开发、管理员端页面开发、教师端页面开发、学生端页面开发、可视化模块开发前端完整页面、交互功能实现、前端部署包
前后端联调第8周前后端接口联调、全业务流程打通、数据交互调试、bug修复、功能优化可运行的完整系统、联调测试报告
测试与优化第9周全量功能测试、性能测试、安全性测试、兼容性测试、bug修复、系统性能优化、用户体验优化测试报告、优化后的系统安装包
交付与答辩准备第10周毕业论文撰写与修改、所有项目文档完善、部署脚本编写、交付物整理、答辩PPT制作、演示视频录制完整毕业设计交付物、毕业论文终稿、答辩PPT

九、风险控制与应对措施

风险类型风险描述应对措施
技术风险对Semi Design、Django DRF、Redis高级特性不熟悉,导致开发进度滞后1. 开发前完成技术预研,编写核心功能Demo;2. 参考官方文档与最佳实践案例;3. 里程碑预留1周技术攻关缓冲时间;4. 采用成熟的开源解决方案,避免重复造轮子
进度风险需求变更、开发难点导致项目进度延期1. 开发阶段需求冻结,不接受大的需求变更;2. 小需求变更评估影响,调整里程碑计划;3. 拆分功能模块,迭代式开发,优先实现核心功能;4. 预留1周缓冲期,应对突发情况
安全风险系统存在安全漏洞,导致越权操作、数据泄露1. 开发阶段遵循安全开发规范,内置防注入、XSS防护;2. 采用成熟的认证与权限框架,杜绝越权漏洞;3. 上线前进行全面安全测试,修复所有高危漏洞;4. 敏感数据加密存储,全量操作留痕
性能风险并发量高时系统响应慢,数据库压力大1. 合理设计数据库索引,优化SQL查询;2. 全量落地Redis缓存方案,降低数据库压力;3. 分页查询、懒加载减少数据传输量;4. 基于Redis实现接口限流,防止恶意请求
部署风险部署环境复杂,系统无法正常运行1. 采用Docker容器化部署,统一环境配置,避免环境差异问题;2. 编写一键部署脚本,降低部署门槛;3. 提供详细的部署文档与常见问题排查指南;4. 开发环境与生产环境技术栈保持一致

About

学生成绩管理系统(Django+Redis+MySQL+SEMI)

Language
TypeScript49.7%
Python47%
CSS2.3%
Dockerfile0.5%
Others0.5%