A simple course selection system using Springboot framework
Find a file
2025-06-30 17:44:38 +08:00
src 优化数据库表 2024-06-09 17:45:40 +08:00
.gitignore 添加初始化数据库的建表和插入数据语句 2024-05-29 22:17:22 +08:00
init.sql chore: add init.sql 2025-06-30 17:21:20 +08:00
pom.xml 发布版本 2024-06-10 14:13:44 +08:00
README.md docs: update README.md 2025-06-30 17:44:38 +08:00

course-selection-system

介绍

这是 USTC 24 春季学期的《程序设计进阶与实践》课程的大作业,一个前后端分离的,前端使用原生 html + css + javascript后端基于 Spring Boot + MyBatis + MySQL 的学生选课系统。

特点

  • 实现基本的学生身份认证功能,通过后端导入的学生数据进行登录和鉴权。
  • 实现学生选课,退课,查看已选课程等功能,保证选课时间不能冲突,并提供每周课表展示。
  • 导入了 USTC 23 秋季学期的全校开课数据,模拟真实的一学期的课程选课功能。

前置

  • jdk >= 17
  • MySQL >= 5.7
  • Maven >= 3.6

运行

首先 clone 本项目到本地:

git clone https://github.com/Vertsineu/course-selection-system.git
cd course-selection-system

然后添加 css_dev 用户到 MySQL 数据库中:

mysql -u root -p < init.sql

如果是通过 docker 启用的 MySQL 数据库,比如:

docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql

或者远程启用的 MySQL 数据库,则需指定目的 IP 地址:

mysql -h 127.0.0.1 -u root -p < init.sql

接下来,使用 Maven 编译项目:

mvn compile

为确保正确初始化数据库,首先修改 src/main/resources/conf/mysql.yml 中最后一行的 spring.sql.mode 字段的值为 always

spring:
    ...
    sql:
        ...
        mode: always

然后运行以下命令添加一个测试用户:

mvn -Dtest=CourseSelectionSystemApplicationTests#addUser test

该过程会导入 USTC 23 秋季学期的全校开课数据,并添加测试用户,可能需要运行几分钟时间,请耐心等待。

接着,为了防止重复初始化数据库,在 src/main/resources/conf/mysql.yml 中将 spring.sql.mode 字段的值改回 never

spring:
    ...
    sql:
        ...
        mode: never

最后,运行以下命令运行该项目:

mvn spring-boot:run

如果运行过程中报错,显示端口已被占用,可以修改 src/main/resources/application.yml 中的 server.port 字段:

server:
  port: 8000

使用

浏览器中输入 localhost:8000 即可访问前端页面,用户名 username,密码 password,登录后即可使用系统。