1 Star 1 Fork 0

gregPerlinLi / course_selection_system

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

学生选课系统 Course selection system

一个用于学生选课用的服务系统

By: -gregPerlinLi-

项目描述

项目需求

​ 通过 JavaEE 与 Tomcat ,在在线环境中开发和设计了一个学生选课系统。在此系统中,我们可以实现学生的选退课,学生,课程信息以及组织架构的管理。该系统面向学生和教务处工作人员,因此设计了两个登录接口

使用到的技术

JavaEE、Tomcat、Servlet、MySQL、JDBC、HTML、CSS、JavaScript

项目亮点

  1. 连接池以及每个连接通过过滤器和 ThreadLocal 实现了并发安全
  2. 将对数据表的通用操作统一封装到了BaseDao
  3. 对95%以上的serviceutil 层的代码进行了单元测试
  4. 通过一个 BaseServlet 实现了根据 URI 调用对应 Controller 对应方法,并统一处理异常
  5. 通过过滤器实现了学生和管理员的权限管理
  6. 在登录和注册的时候使用了验证码,防止重复提交
  7. 所有密码在传输之前均会在前端做好 MD5 加密,以保证数据安全

目录描述

前端

  • WEB-INF 放置 Tomcat 服务器配置和一些依赖库文件
  • pages/admin 放置管理员相关的网页
  • pages/user 放置学生相关的网页
  • pages/login 放置登录/注册相关的页面
  • pages/error 放置错误提示页面
  • static/css 放置各种样式表文件
  • static/js 放置各种 JavaScript 脚本文件
  • static/img 放置各种图片文件

后端

  • resource 放置各种配置(包括 JDBC 连接和连接池配置)
  • db 放置数据库文件(在 resource 目录下)
  • com.gregperlinli.pojo 放置与数据库一一对应的实体类
  • com.gregperlinli.dao 放置数据库或文件读写相关的代码,其中的 impl 目录放置所有接口的实现类
  • com.gregperlinli.service 放置与事务和逻辑处理相关的代码,其中的 impl 目录放置所有接口的实现类
  • com.gregperlinli.web 放置与 Controller 有关的代码
  • com.gregperlinli.filter 放置与过滤器有关的代码
  • com.gregperlinli.utils 工具类
  • com.gregperlinli.test 单元测试类,其中的每一个包分别对应前面的包

MySQL 数据表结构

用途
admin 存放管理员信息
student 存放学生信息
course 存放课程信息
selected_course 存放所有选课信息
college 存放学院信息
grade 存放年级信息
classes 存放班级信息

准备工作

基本要求

  • Java 最低版本为 16.0.1 或以上
  • JavaEE 最低版本为 8.0 或以上
  • Tomcat 最低版本为 9.0.4310.0 以上的版本暂不支持)
  • MySQL 最低版本为 8.0.22 或以上

必要依赖库

  • MySQL Connector/j 最低版本为 8.0.25 或以上
  • Java Servlet 最低版本为 4.0.1 或以上
  • Junit 最低版本为 5.7.2 或以上
  • Gson 最低版本为 2.8.7 或以上
  • Apache Commons BeanUtils 最低版本为 20030211.134440 或以上
  • Kaptcha 最低版本为 2.3 或以上

数据库配置

  • 运行 .resource/db/course_selection_system.sql 导入数据库

配置数据库连接

​ JDBC 以及 数据库连接池配置: .resource/jdbc.properties

# 以下为数据库连接池的初始化参数(必填)
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/course_selection_system?rewriteBatchedStatements=true&serverTimezone=Asia/Shanghai
jdbc.username=course_management
jdbc.password=course_management

# 以下为数据库连接池的额外参数(选填)
pool.initialSize=10
pool.incrementalConnections=5
pool.maxActive=50

主要功能

用户分类及其权限

  1. 普通学生:
    • 注册学生账号
    • 修改自己的信息
    • 查看所有的课程和开始选课的课程
    • 选课/退选
    • 查看自己的已选课程
  2. 管理员:
    • 管理员信息的增删改查管理
    • 学院信息的增删改查管理
    • 年级信息的增删改查管理
    • 班级信息的增删改查管理
    • 学生信息的增删改查管理
    • 课程信息的增删改查管理
    • 选课信息管理

其他功能

  • 学生和管理员均可以查看课程的选课状态
  • 学生和管理员可以查看自己的登录信息
  • 在修改信息的时候,程序会自动将现有信息填充到表格中(密码除外)
  • 密码检查功能

一些问题

  1. 在修改学生信息的时候,有时候程序无法正确显示此学生所在的学院/年级/班级
  2. 在修改学生/管理员的时候,有时候即使密码为空也是能进行提交修改
  3. 在更改学生姓名的时候,选课信息中的选课学生的名字有一定的概率会没有更改
  4. 在未登录的情况下有概率会直接进入到学生/管理员界面,不过在刷新之后还是会强制跳转回登录页面

未来目标

  • 优化代码
  • 使用 Log4j 进行日志记录
  • 在页面添加当前时间显示
  • 支持批量导入学院/年级/班级信息
  • 支持批量导出学院/年级/班级信息
  • 将数据导出为 Excel 格式
  • course 表中添加课程的上课时间
  • 添加课表查看
  • 添加课程冲突处理
  • 添加教师类用户
  • 实现教师申请开课功能
  • 使用 SSM
MIT License Copyright (c) 2021 gregPerlinLi Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

一个用于学生选课用的服务系统 展开 收起
JavaScript 等 4 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
JavaScript
1
https://gitee.com/gregperlinli/course_selection_system.git
git@gitee.com:gregperlinli/course_selection_system.git
gregperlinli
course_selection_system
course_selection_system
master

搜索帮助