项目前端:https://gitee.com/anxin-personal-project/register-management-front
项目后端:https://gitee.com/anxin-personal-project/register-management-behind
????????新生报到管理系统整体技术架构包括前端、后端、数据库以及测试。
????????前端采用主流框架Vue,集成Element-ui、Axios以及Echarts,其中Element-ui作为组件库,Axios进行异步通信,Echarts用来绘制图表。
????????后端采用微服务框架SpringBoot,主要集成Tomcat、Apache Shiro、JWT、MyBatis Plus、Spring AOP、Slf4j和Easy Poi等。其中,Tomcat作为项目部署的中间件,Apache Shiro来实现权限控制,Json Web Token(JWT)作为token来进行认证,使用Spring中的AOP来实现对操作日志的记录,采用日志框架Slf4j方便排查上线后系统出错原因,Easy poi对excel操作。
????????数据库采用RDB中的MySQL和NoSQL中的Redis,MySQL用来存储各个模块实体类的数据,Redis主要是用来缓存用户的token信息,将token和用户信息以key-value形式存入Redis中,防止进行认证时频繁对token进行解密操作,也可以有效解决JWT续签问题,并且Redis可以对当天系统访问量进行一个缓存操作,防止MySQL频繁的进行更新操作。
????????采用Java Selenium框架对系统进行自动化测试,能够有效减少系统Bug的出现率,并且能够使得系统能够正常安全运行。
????????根据实际中新生报到工作流程,新生报到管理的设计与开发要达到以下几方面的目标:
????????(1)简化报到流程。为新生以及参与新生报到的工作人员提供一个更简便的报到方式。
????????(2)提供多角色多权限管理。在新生报到流程中,不仅有学生和老师参与,还有财务人员、学工办人员、宿舍管理员等参与,因此,需要提供多角色多权限管理来对参与新生报到流程的人员进行角色分配。
????????(3)实现新生数据可视化,确保统计新生数据准确。
????????(4)提供互动交流平台。由于家长和新生,不熟悉新生报到流程,即使提供了新生报到流程指南,家长和新生也存在一些疑点,因此,设计互动交流平台目的是为家长和新生解答一些疑问,也能够让新生之间相互了解。
????????(5)提高新生信息的准确性。由于简化了新生报到流程,新生只需要在系统上填写信息、入住即可。到校时,只需提供录取通知书、身份证等相关报到资料。
????????(6)提供校园导航。由于家长和新生,不熟悉校园的整体构造,新生报到管理系统应提供校园导航功能,让家长和新生提前熟悉校园。
????????功能模块表包括用户基本信息表(user),角色表(role),权限组表(permission_group),权限表(permission),班级表(classroom),专业表(profession),学院表(academy),宿舍表(dormitory),房间表(room),照片表(photo_resource),贴吧表(post_bar),回帖表(reply_post_bar),评论表(comment_post_bar),场景表(scene),场景距离表(scene_dist),财务表(finance)和操作日志表(log_info)。
用户基本信息表(user)
字段名 | 数据类型 | 长度 | 其他 | 描述 |
id | int | 11 | 自增 | 用户唯一标识 |
user_name | varchar | 20 | 非空 | 账号,即学号 |
pass_word | varchar | 20 | 非空 | 密码(加密后) |
nick_name | varchar | 10 | 非空 | 真实名称 |
id_card | char | 18 | 非空 | 身份证 |
photo_id | char | 32 | uuid,关联照片表 | |
sex | char | 1 | 性别,男或女 | |
date_of_birth | date | 出生日期 | ||
telephone | char | 11 | 手机号 | |
class_room_id | int | 11 | 班级id,关联班级表 | |
room_id | int | 11 | 房间id,关联房间表 | |
academic_year | int | 11 | 学制(年) | |
cultural_level_id | int | 11 | 学历,关联学历表 | |
admission_year | int | 11 | 非空 | 入学时间 |
| varchar | 20 | 邮箱 | |
nationality_id | int | 11 | 民资,关联民族表 | |
political_status_id | int | 11 | 政治面貌,关联政治面貌表 | |
area | varchar | 22 | 生源地 | |
home_address | varchar | 50 | 家庭地址 | |
is_pay | tinyint | 1 | 默认0 | 是否付费 |
is_disabled | tinyint | 1 | 默认0 | 是否禁用(是,则不能登录) |
is_disabled_mode | tinyint | 1 | 默认1 | 是否开启默认禁用模式 |
create_time | datetime | 非空 | 创建时间 | |
update_time | datetime | 非空 | 修改时间 |
操作日志表(log_info)
字段名 | 数据类型 | 长度 | 其他 | 描述 |
id | int | 11 | 自增 | id,唯一标识 |
handle_user_id | int | 11 | 非空 | 操作用户 |
handle_name | varchar | 20 | 非空 | 操作名称 |
request_url | varchar | 200 | 非空 | 请求url |
os_type | varchar | 20 | 非空 | 操作系统类型 |
client_type | varchar | 20 | 非空 | 客户端类型 |
create_time | datetime | 非空 | 操作时间 |
?项目前端:https://gitee.com/anxin-personal-project/register-management-front
项目后端:https://gitee.com/anxin-personal-project/register-management-behind