- 图都是用excalidraw在线网站画的,挺好用的,是一个开源的nodejs项目
1 系统需求分析
- 在科技快速发展的背景下,学校教师需要一个方便快捷的系统来进行补课教室的申报和管理。通过与教师群体进行沟通和调研,我们了解到传统的补课教室申报方式存在一些问题,例如申报流程繁琐、信息传递不及时等。因此,开发教师补课教室申报系统的目的是为了提高效率,简化流程,并更好地满足教师们的需求。
- 用户模块
(1)教师账号注册和登录:提供教师身份验证和个人信息管理的入口。
(2)教师个人中心:教师管理个人信息、查看已提交的申请和审批状态。(3)教师申请补课教室:教师填写申请表格等信息,并上传相关附件。
(4)教师查看申请记录:教师可以查看自己的补课教室申请记录
- 管理员模块:
(1)管理员账号登录:提供管理员身份验证和管理权限。
(2)管理员个人中心:方便管理员管理个人信息、查看申请审批情况
(3)教室申报审批:查看教师提交的补课教室申请,进行审批操作
(4)教室资源管理:管理员可以管理教室信息并更新教室使用状态。
2 系统概要设计
-
根据需求分析,教师补课教室申报系统可分为用户模块和管理员模块。 用户模块包括教师表、账号表和申请表,其中教师表存储教师的个人信息,账号表存储账号信息,申请表存储教师的补课教室申请信息。管理员模块包括管理员表、管理员账号表、教室表和审批记录表,其中管理员表存储管理员的个人信息,管理员账号表存储账号信息,教室表存储教室信息,审批记录表存储教师补课教室申请的审批记录。
-
具体实现上,教师可以使用账号登录系统,进行个人信息管理,填写补课教室申请,查看已提交申请和审批状态。管理员可以使用账号登录系统,进行个人信息管理,查看教师提交的补课教室申请并进行审批操作,管理教室信息和更新教室使用状态,查看订单记录以及审核商品评论。系统可以记录教师的申请历史和审批记录,以便教师和管理员进行查看和查询。
(图1 网站功能结构)
2.1 网站前台模块概要设计
- 教师补课教室申报系统的网站首页提供了一系列功能,包括用户登录/注册、申报教室、教室查询、申报状态查看、通知公告。通过用户登录/注册功能,教师可以方便地使用自己的账户进行申报和管理。申报教室功能允许教师填写相关信息并提交申请,以申请补课时所需的教室。教室查询功能让教师能够查看可用的教室,并了解其可用时间和相关信息,以便选择合适的教室进行申报。申报状态查看功能让教师可以随时查看自己已提交的申报状态,包括待审核、已通过或被拒绝等状态,并查看审核人员的留言和意见。功能如下:
(图2 平台首页功能模块)
- 通过用户中心,教师可以方便地收到重要通知。同时,用户中心还提供个人信息管理和密码修改等功能,帮助教师更好地使用系统并保障账户安全,功能如下:
(图3 用户中心详细信息展示)
- 订在教师申报模块中,提供了教室查询功能,教师可以通过该功能查看可用教室的信息,包括教室编号、容纳人数、设备设施等,以便选择合适的教室进行补课申请,教师可以填写补课申请表单,包括教室编号、日期、时间段、课程名称、教师姓名等信息,以便系统能够准确记录和处理申请一旦填写完毕申请表单,教师可以点击提交按钮将申请信息发送至系统。系统会自动将申请信息送至管理员进行审批, 如果教师需要修改已提交的申请信息或者撤销申请,可以在教师申报模块中进行操作。这样,教师能够灵活调整补课计划并及时通知系统管理员,功能如下:
(图4 教师申请功能模块)
- 教师可以使用申请记录模块查看自己的历史申请记录与审核状态,功能如下:
(图5 申请记录模块)
2.2 后台管理系统模块概要设计
- 提供管理员登录后台的功能,需要进行验证码的认证,提高安全性,同时支持密码找回功能,功能如下:
(图6 管理员登录)
- 个人中心是一个用户管理自己账号的地方,其中包括多个功能点。个人信息包括用户的姓名、头像、生日、性别、联系方式等信息,用户可以编辑和更新个人资料。同时,管理员可以注销或者创建普通用户,也可以修改自己的密码.功能如下:
(图7 管理中心模块图)
- 管理员可以查看所有待审批的教师补课教室申报列表,包括申报的基本信息和教师的联系方式。管理员可以对每个补课教室申报进行审批操作,包括批准、驳回或退回修改。管理员可以填写审批意见和备注,对教师的申报进行解释、建议或说明。功能如下:
(图8 申请审批管理模块)
-
教师补课教室申报系统的网站教室管理模块包含以下功能点:管理员可以对教室进行全面管理。首先,管理员可以查看教室列表,包括每个教室的基本信息,如教室编号、容纳人数等。其次,管理员可以新增、编辑和删除教室信息,确保教室信息的准确性和完整性。此外,管理员可以查看教室的占用情况,包括已被申请的时间段和教师名称,以避免时间冲突。,功能如下:
(图9 教室管理模块)
2.3 数据流图设计
- 教师补课教室申报系统顶层数据流图
- 教师补课教室申报系统1层数据流程
3 数据库设计
- 作为关键数据管理的核心,数据库能够高效地存储和处理大量数据,在实现各种应用程序中扮演着至关重要的角色。在建立数据库时,我们需要考虑到数据之间的关联性和逻辑性,以保证数据的完整性和一致性。同时,我们还需要进行一系列的操作,包括数据的增、删、改、查等,以满足各种应用场景的需求。在选择数据库时,我们需要根据自身的需求和预算来选择不同的数据库产品,如MYSQL数据库,它具有成本低、功能全、体积小等优点,是一个非常实用的关系型数据库解决方案。
3.1 E-R图和表的详细设计
- E-R图能够直观的表示表与表之间的联系,以及数据的关键信息,教师补课教室申报系统的数据库表与信息如下所示:
(图11 数据库E-R图)
3.2 数据表详细设计
- 教师用户表(user)
字段名 | 字段说明 | 数据类型 | 字段约束 | 备注 |
---|---|---|---|---|
Id | 用户id | int(10) | 为主键,设置非空 | 设置自动递增 |
Name | 名称(用户) | Varchar(25) | 默认为空字符 | |
Passwd | 密码(用户) | Varchar(100) | 默认为空字符 | |
邮箱(用户) | Varchar(25) | 默认为空字符 | ||
Phone | 电话号码(用户) | Varchar(25) | 默认为空字符 | |
Tname | 姓名(用户) | Varchar(25) | 默认为空字符 | |
Birthday | 生日(用户) | Varchar(25) | 默认为空字符 |
-
表1教师用户表(user)是用来存储教师用户信息的数据库表。该表包含了多个字段,用于记录每位教师用户的相关信息。表中的字段包括:
-
Id:用户id,为主键,采用整数数据类型,长度为10,并设置为非空。该字段用于唯一标识每个教师用户。
-
Name:名称,使用字符型数据类型(Varchar),最大长度为25。该字段默认为空字符,可以用于存储用户的名称或标识。
-
Passwd:密码,采用字符型数据类型(Varchar),最大长度为100。该字段默认为空字符,用于保存用户的密码信息。
-
Email:邮箱,采用字符型数据类型(Varchar),最大长度为25。该字段默认为空字符,用于存储用户的电子邮箱地址。
-
Phone:电话号码,采用字符型数据类型(Varchar),最大长度为25。该字段默认为空字符,用于记录用户的电话号码。
-
Tname:姓名,采用字符型数据类型(Varchar),最大长度为25。该字段默认为空字符,用于保存用户的真实姓名。
-
Birthday:生日,采用字符型数据类型(Varchar),最大长度为25。该字段默认为空字符,可用于记录用户的出生日期。
-
上述字段组成了教师用户表,通过该表可以存储每位教师用户的基本信息,包括其名称、密码、邮箱、电话号码、真实姓名和生日等。这些信息可以为系统提供身份验证、个人资料展示等功能提供支持。
- 管理员表(admin)
字段名 | 字段说明 | 数据类型 | 字段约束 | 备注 |
---|---|---|---|---|
Aid | 管理员id | int(10) | 为主键,设置非空 | 设置自动递增 |
Aname | 名称(管理员) | Varchar(25) | 默认为空字符 | |
Apasswd | 密码(管理员) | Varchar(100) | 默认为空字符 | |
Aemail | 邮箱(管理员) | Varchar(25) | 默认为空字符 | |
Aphone | 电话(管理员) | Varchar(25) | 默认为空字符 | |
Atname | 姓名(管理员) | Varchar(25) | 默认为空字符 | |
Abirthday | 生日(管理员) | Varchar(25) | 默认为空字符 |
-
管理员表(admin)是用来存储管理员用户信息的数据库表。该表包含了多个字段,用于记录每位管理员用户的相关信息。表中的字段包括:
-
Aid:管理员id,为主键,采用整数数据类型,长度为10,并设置为非空。该字段用于唯一标识每个管理员用户。
-
Aname:名称,使用字符型数据类型(Varchar),最大长度为25。该字段默认为空字符,可以用于存储用户的名称或标识。
-
Apasswd:密码,采用字符型数据类型(Varchar),最大长度为100。该字段默认为空字符,用于保存用户的密码信息。
-
Aemail:邮箱,采用字符型数据类型(Varchar),最大长度为25。该字段默认为空字符,用于存储用户的电子邮箱地址。
-
Aphone:电话号码,采用字符型数据类型(Varchar),最大长度为25。该字段默认为空字符,用于记录用户的电话号码。
-
Atname:姓名,采用字符型数据类型(Varchar),最大长度为25。该字段默认为空字符,用于保存用户的真实姓名。
-
Abirthday:生日,采用字符型数据类型(Varchar),最大长度为25。该字段默认为空字符,可用于记录用户的出生日期。
-
上述字段组成了管理员表,通过该表可以存储每位管理员用户的基本信息,包括其名称、密码、邮箱、电话号码、真实姓名和生日等。管理员用户可以使用这些信息登录到系统中,进行各种管理操作,如用户权限控制、数据维护等。同时,管理员用户的个人信息也可以在系统中进行展示。
- 教室表(class)
字段名 | 字段说明 | 数据类型 | 字段约束 | 备注 |
---|---|---|---|---|
Cid | 教室id | Varchar(5) | 设置主键,默认为H1102 | |
Cvml | 教室容量 | Int(4) | 默认为0 | |
Ctype | 教室类型 | Int(1) | 设置非空,默认为0 | |
Chp | 教室状态 | Int(1) | 设置非空,默认为0 |
-
教室表(class)是用于存储教室相关信息的数据库表。该表包含了教室的各种属性,如教室ID、教室容量、教室类型和教室状态等。
-
教室ID(Cid)字段是该表的主键,采用字符型数据类型(Varchar),最大长度为5,并默认设置为H1102。该字段用于唯一标识每个教室。
-
教室容量(Cvml)字段采用整数型数据类型(Int),最大长度为4,默认值为0。该字段用于记录教室的最大容纳人数。
-
教室类型(Ctype)字段采用整数型数据类型(Int),长度为1,并设置为非空,默认值为0。该字段用于区分教室的类型,0为普通教室,1为多媒体教室,2为机房,3为阶梯教室。
-
教室状态(Chp)字段采用整数型数据类型(Int),长度为1,并设置为非空,默认值为0。该字段用于表示教室的当前状态,根据实际情况定义不同的状态,0代表空闲,1代表占用,2代表故障。
-
通过教室表,可以方便地查询和管理教室的基本信息。教室ID作为主键可以确保每个教室的唯一性,而教室容量、教室类型和教室状态等字段则提供了更详细的教室属性信息,方便系统进行相应的调度和管理。
- 申请信息表(request)
字段名 | 字段说明 | 数据类型 | 字段约束 | 备注 |
---|---|---|---|---|
Rid | 申请id | Int(5) | 为主键,设置非空 | 设置自动递增 |
Id | 申请教师id | int(10) | 设置非空 | |
Cid | 教室id | Varchar(5) | 默认空字符 | |
Sdate | 申请开始时间 | Varchar(20) | 设置非空 | |
Edate | 审核结束时间 | Varchar(20) | 设置非空 | |
Status | 审核状态 | int(1) | 默认为0 |
-
申请信息表(request)是用于记录教师对教室申请的相关信息的数据库表。该表包含了教师的申请ID、教室ID、申请开始时间、审核结束时间和审核状态等字段。
-
申请教师ID(Id)字段采用整数型数据类型(int),长度为10,并设置为非空和自动递增。该字段用于唯一标识每个申请教师。
-
教室ID(Cid)字段采用字符型数据类型(Varchar),最大长度为5,并默认设置为空字符。该字段用于记录教室的ID,表示教师所申请的教室。
-
申请开始时间(Sdate)字段采用字符型数据类型(Varchar),最大长度为20,并设置为非空。该字段用于记录申请的开始时间,表示教师希望使用教室的起始时间。
-
审核结束时间(Edate)字段采用字符型数据类型(Varchar),最大长度为20,并设置为非空。该字段用于记录审核的结束时间,表示教师申请的审核结果确认时间。
-
审核状态(Status)字段采用整数型数据类型(int),长度为1,默认值为0。该字段用于表示申请的审核状态,根据实际需求定义不同的状态码,0代表待审核,1代表通过审核,2代表审核不通过。
-
通过申请信息表,可以方便地记录和管理教师对教室申请的各项信息。申请教师ID作为主键确保了每个申请教师的唯一性,而教室ID、申请开始时间、审核结束时间和审核状态等字段则提供了更详细的申请信息,方便系统进行相应的操作和查询。
- 审核信息表(response)
字段名 | 字段说明 | 数据类型 | 字段约束 | 备注 |
---|---|---|---|---|
Reid | 审核id | int(5) | 为主键,设置非空 | 设置自动递增 |
Aid | 审核者id | Int(10) | 设置非空 | |
Id | 申请教师id | int(10) | 设置非空 | |
Cid | 教室id | Varchar(5) | 默认空字符 | |
Sdate | 申请开始时间 | Varchar(20) | 设置非空 | |
Edate | 审核结束时间 | Varchar(20) | 设置非空 | |
Status | 审核状态 | int(1) | 默认为0 |
-
审核信息表(审核信息表)是用于记录审核者对教师申请的审核结果及相关信息的数据库表。该表包含了审核ID、审核者ID、申请教师ID、教室ID、申请开始时间、审核结束时间和审核状态等字段。
-
审核ID(Reid)字段是该表的主键,采用整数型数据类型(int),长度为5,并设置为非空和自动递增。该字段用于唯一标识每个审核信息。
-
审核者ID(Aid)字段采用整数型数据类型(Int),长度为10,并设置为非空。该字段用于记录审核者的ID,表示进行审核的人员。
-
申请教师ID(Id)字段采用整数型数据类型(int),长度为10,并设置为非空。该字段用于与申请信息表关联,标识被审核的申请教师。
-
教室ID(Cid)字段采用字符型数据类型(Varchar),最大长度为5,并默认设置为空字符。该字段用于记录教室的ID,表示教师所申请的教室。
-
申请开始时间(Sdate)字段采用字符型数据类型(Varchar),最大长度为20,并设置为非空。该字段用于记录申请的开始时间,表示教师希望使用教室的起始时间。
-
审核结束时间(Edate)字段采用字符型数据类型(Varchar),最大长度为20,并设置为非空。该字段用于记录审核的结束时间,表示审核者对申请进行审核的时间。
-
审核状态(Status)字段采用整数型数据类型(int),长度为1,默认值为0。该字段用于表示审核的状态,根据实际需求定义不同的状态码,0代表待审核,1代表通过审核,2代表审核不通过等。
-
通过审核信息表,可以方便地记录和管理审核者对教师申请的审核结果及相关信息。审核ID作为主键确保了每个审核信息的唯一性,而审核者ID、申请教师ID、教室ID、申请开始时间、审核结束时间和审核状态等字段则提供了更详细的审核信息,方便系统进行相应的操作和查询。
- 教室预约表(classbk)
字段名 | 字段说明 | 数据类型 | 字段约束 | 备注 |
---|---|---|---|---|
Bkid | 预约id | int(5) | 为主键,设置非空 | 设置自动递增 |
Cid | 教室id | Varchar(5) | 默认空字符 | |
Bksdate | 占用开始时间 | Varchar(20) | 默认为空字符 | |
Bkedate | 占用结束时间 | Varchar(20) | 默认为空字符 | |
Bkstatus | 占用状态 | Int(1) | 默认为0 |
-
教室预约表(classbk)是用于记录教室的预约情况的数据库表。该表包含了预约ID、教室ID、占用开始时间、占用结束时间和占用状态等字段。
-
预约ID(Bkid)字段是该表的主键,采用整数型数据类型(int),长度为5,并设置为非空和自动递增。该字段用于唯一标识每个预约记录。
-
教室ID(Cid)字段采用字符型数据类型(Varchar),最大长度为5,并默认设置为空字符。该字段用于记录教室的ID,表示被预约的教室。
-
占用开始时间(Bksdate)字段采用字符型数据类型(Varchar),最大长度为20,并默认设置为空字符。该字段用于记录预约占用的开始时间,表示教室被预约使用的起始时间。
-
占用结束时间(Bkedate)字段采用字符型数据类型(Varchar),最大长度为20,并默认设置为空字符。该字段用于记录预约占用的结束时间,表示教室被预约使用的结束时间。
-
占用状态(Bkstatus)字段采用整数型数据类型(int),长度为1,默认值为0。该字段用于表示教室的占用状态,根据实际需求定义不同的状态码,例如0代表未占用,1代表已占用,2表示故障。
-
通过教室预约表,可以方便地记录和管理教室的预约情况。预约ID作为主键确保了每个预约记录的唯一性,而教室ID、占用开始时间、占用结束时间和占用状态等字段则提供了更详细的预约信息,方便系统进行相应的操作和查询。教室预约表可以在教室管理系统中使用,实现对教室预约情况的准确记录和管理。
- 教室报修表(classre)
字段名 | 字段说明 | 数据类型 | 字段约束 | 备注 |
---|---|---|---|---|
Reid | 报修id | int(5) | 为主键,设置非空 | 设置自动递增 |
Cid | 教室id | Varchar(5) | 默认空字符 | |
Id | 报修教师id | Int(10) | 默认为空字符 | |
Redate | 报修时间 | Varchar(20) | 默认为空字符 | |
Redes | 报修备注 | Text | 默认为空 |
-
教室报修表(classre)是用于记录教室维修报修情况的数据库表。该表包含了报修ID、教室ID、报修教师ID、报修时间和报修备注等字段。
-
报修ID(Reid)字段是该表的主键,采用整数型数据类型(int),长度为5,并设置为非空和自动递增。该字段用于唯一标识每个报修记录。
-
教室ID(Cid)字段采用字符型数据类型(Varchar),最大长度为5,并默认设置为空字符。该字段用于记录报修的教室ID,表示需要维修的教室。
-
报修教师ID(Id)字段采用整数型数据类型(int),长度为10,并默认设置为空。该字段用于记录报修教师的ID,表示发起报修的教师。
-
报修时间(Redate)字段采用字符型数据类型(Varchar),最大长度为20,并默认设置为空字符。该字段用于记录报修的时间,表示教室维修报修的发起时间。
-
报修备注(Redes)字段采用文本型数据类型(Text),默认为空。该字段用于记录报修的备注信息,可以描述具体的故障情况或其他需要说明的内容。
-
通过教室报修表,可以方便地记录和管理教室的维修报修情况。报修ID作为主键确保了每个报修记录的唯一性,而教室ID、报修教师ID、报修时间和报修备注等字段则提供了更详细的报修信息,方便系统进行相应的操作和查询。教室报修表可以在教室管理系统中使用,实现对教室维修报修情况的准确记录和处理。
- 教室能耗表(classpo)
字段名 | 字段说明 | 数据类型 | 字段约束 | 备注 |
---|---|---|---|---|
Cid | 教室id | Varchar(5) | 默认空字符 | |
Date | 统计时间 | Varchar(20) | 默认为空字符 | |
Value | 能耗值 | Int(5) | 默认为0 |
-
教室能耗表(classpo)是用于记录教室的能耗统计信息的数据库表。该表包含了教室ID、统计时间和能耗值等字段。
-
教室ID(Cid)字段采用字符型数据类型(Varchar),最大长度为5,并默认设置为空字符。该字段用于记录教室的ID,表示被统计的教室。
-
统计时间(Date)字段采用字符型数据类型(Varchar),最大长度为20,并默认设置为空字符。该字段用于记录能耗的统计时间,表示统计的时间段或日期。
-
能耗值(Value)字段采用整数型数据类型(int),长度为5,并默认值为0。该字段用于记录教室的能耗值,表示在统计时间内教室的能耗量。
-
通过教室能耗表,可以方便地记录和管理教室的能耗情况。教室ID用于标识不同的教室,统计时间用于区分不同时间段的能耗数据,而能耗值则表示具体的能耗量。该表可以用于能源管理系统中,帮助学校或机构实时监测和分析教室的能耗情况,以便进行能源消耗的优化和节约措施的制定。通过对教室能耗表的记录和分析,可以提高能源利用效率,降低能耗成本,并对绿色环保发挥积极作用。