您的位置:首页 > 教育 > 培训 > 校园选课助手【1】-项目整体架构从此开始

校园选课助手【1】-项目整体架构从此开始

2024/10/5 23:25:10 来源:https://blog.csdn.net/qq_43954910/article/details/140841347  浏览:    关键词:校园选课助手【1】-项目整体架构从此开始
  1. 项目背景
    随着高校招生规模的不断扩大,学生选课需求日益增长。为提高选课效率,降低学生选课压力,本项目旨在开发一款校园选课助手软件。

  2. 项目目标:开发一款具有以下特点的校园选课助手软件:
    易用性:界面简洁,操作简便,便于学生快速上手。
    功能性:满足学生选课、退课、查询课程信息等需求。
    高效性:提高选课速度,减少学生选课时间。
    可靠性:确保软件稳定运行,降低故障率。

  3. 项目范围
    本项目涉及以下方面:
    软件开发:包括需求分析、设计、编码、测试和部署等环节。
    技术支持:为软件提供持续的技术维护和升级。

  4. 需求分析
    4.1 功能需求
    用户注册与登录:用户需注册账号并登录,方可使用选课功能。
    课程查询:用户可按课程名称、课程代码、教师姓名等条件查询课程信息。
    选课:用户可根据个人需求选择课程,并加入选课列表。
    退课:用户可从选课列表中移除已选课程。
    个人中心:用户可查看已选课程、课程表、成绩等信息。
    在这里插入图片描述

    4.2非功能需求
    界面友好:界面设计简洁、美观,操作简便。
    响应速度:系统响应速度快,满足大量用户同时访问。
    数据安全:确保用户数据和课程数据的安全。

  5. 系统设计
    5.1 架构设计
    采用前后端分离的架构,前端负责展示界面和交互,后端负责数据处理和业务逻辑。

    5.2 技术选型
    前端:HTML5、CSS3、JavaScript、Ajax
    后端:Spring MVC、Mybatis、Redis、RabbitMQ、MySQL、Elasticsearch
    数据库:MySQL、Elasticsearch

    5.3 界面设计
    根据需求分析,设计以下界面:
    登录界面
    注册界面
    课程查询界面
    选课界面
    退课界面
    个人中心界面

    5.4 数据库设计

MySQL设计以下数据库表:
用户表:包含用户ID、用户名、密码、手机号等信息。

CREATE TABLE `t_user` (`id` bigint(20) NOT NULL COMMENT '用户ID,手机号码',`nickname` varchar(255) NOT NULL,`password` varchar(32) DEFAULT NULL COMMENT 'MD5(MD5(pass明文+固定salt)+salt)',`salt` varchar(10) DEFAULT NULL,`head` varchar(128) DEFAULT NULL COMMENT '头像',`register_date` datetime DEFAULT NULL COMMENT '注册时间',`last_login_date` datetime DEFAULT NULL COMMENT '最后一次登录时间',`login_count` int(11) DEFAULT '0' COMMENT '登录次数',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

课程表:包含课程名称、课程代码、教师姓名、学分、课时、余量等信息。

CREATE TABLE `t_course` (`course_name` varchar(16) DEFAULT NULL COMMENT '课程名称',`course_id` varchar(20) NOT NULL COMMENT '课程代码',`course_teacher` varchar(20) NOT NULL COMMENT '授课老师',`course_detail` longtext COMMENT '课程详情',`course_attribute` int(11) DEFAULT '0' COMMENT '课程属性,0必修',`course_price` decimal(10,2) DEFAULT '0.00' COMMENT '学分',`course_stock` int(11) DEFAULT '0' COMMENT '库存,-1表示没有限制',PRIMARY KEY (`course_id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4;

选课表:包含选课ID、用户ID、课程ID、选课状态等信息。

CREATE TABLE `t_order` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '选课ID',`user_id` bigint(20) DEFAULT NULL COMMENT '用户ID',`goods_id` bigint(20) DEFAULT NULL COMMENT '课程ID',`order_channel` tinyint(4) DEFAULT '0' COMMENT '1 pc,2 android, 3 ios',`status` tinyint(4) DEFAULT '0' COMMENT '订单状态,0新建未确认,1已确认',`create_date` datetime DEFAULT NULL COMMENT '订单创建时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=64912 DEFAULT CHARSET=utf8mb4;

Elasticsearch设计索引表:
在这里插入图片描述

PUT /classes
{"mappings": {"properties": {"id": {"type": "keyword"},"name":{"type": "text","analyzer": "ik_max_word"},"teacher_name":{"type": "keyword"},"score":{"type": "integer",},"time":{"type": "integer"}}}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com