{"id":21974146,"url":"https://github.com/javaobjects/student","last_synced_at":"2025-03-22T23:25:45.470Z","repository":{"id":155840055,"uuid":"627929814","full_name":"javaobjects/Student","owner":"javaobjects","description":"SpringBoot+Vue的学生选课管理系统源码","archived":false,"fork":false,"pushed_at":"2023-04-26T06:58:08.000Z","size":756,"stargazers_count":15,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-28T03:17:18.220Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mulanpsl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/javaobjects.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-14T14:09:32.000Z","updated_at":"2025-01-08T04:38:47.000Z","dependencies_parsed_at":null,"dependency_job_id":"850f81e4-7951-458c-9c7a-c51a0ea334f8","html_url":"https://github.com/javaobjects/Student","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaobjects%2FStudent","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaobjects%2FStudent/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaobjects%2FStudent/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/javaobjects%2FStudent/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/javaobjects","download_url":"https://codeload.github.com/javaobjects/Student/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245033784,"owners_count":20550332,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-29T15:39:00.384Z","updated_at":"2025-03-22T23:25:45.442Z","avatar_url":"https://github.com/javaobjects.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cp align=\"center\"\u003e\u003ca href='https://docs.oracle.com/en/java/javase/8'\u003e\u003cimg alt=\"Java 8\" src=\"readme/Java8.png\"\u003e\n\u003c/a\u003e\n    \u003ca href='https://docs.spring.io/spring-boot/docs/2.6.2-SNAPSHOT/reference/html'\u003e\n\u003cimg alt=\"Spring Boot 2\" src=\"https://img.shields.io/badge/Spring%20Boot%202-%23000000.svg?logo=springboot\"\u003e\n\u003c/a\u003e\n    \u003ca href='https://staging-cn.vuejs.org'\u003e\n\u003cimg alt=\"Vue 3\" src=\"https://img.shields.io/badge/Vue%202%20-%232b3847.svg?logo=vue.js\"\u003e\n\u003c/a\u003e\u003cbr/\u003e\n    \u003ca href='#'\u003e\u003cimg alt=\"Github stars\" src=\"https://img.shields.io/github/stars/201206030/novel?logo=github\"\u003e\u003c/a\u003e\n    \u003ca href='#'\u003e\u003cimg alt=\"Github forks\" src=\"https://img.shields.io/github/forks/201206030/novel?logo=github\"\u003e\u003c/a\u003e\n    \u003ca href='#'\u003e\u003cimg alt=\"Gitee stars\" src=\"https://gitee.com/novel_dev_team/novel/badge/star.svg?theme=gitee\"\u003e\u003c/a\u003e\n    \u003ca href='#'\u003e\u003cimg alt=\"Gitee forks\" src=\"https://gitee.com/novel_dev_team/novel/badge/fork.svg?theme=gitee\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n# 学生选课管理系统\n\n#### 开发环境\nWindows\n\n#### 配置环境\n\n| 程序           | 版本        | 说明                       |\n|--------------|-----------|--------------------------|\n| Jdk          | 1.8.0 161 | Java 开发工具包               |\n| Mysql        | 5.5.27    | 关系型数据库                   |\n| Apache-maven | 3.9.0     | Java 项目管理和构建工具           |\n| Nvm          | 1.10      | Node.js 版本管理器            |\n| Node         | 16.20.0   | Node.js JavaScript 运行时环境 |\n\n#### 开发工具\n\n| 工具                       | 版本            | 说明                      |\n|--------------------------|---------------|-------------------------|\n| IDEA                     | 2022.3.2      | 后前端开发IDE                |\n| Git                      | 2.24.1        | 代码托管平台                  |\n| Google   Chrome          | 75.0.3770.100 | 浏览器、前端调试工具              |\n| Navicat                  | 11.1.13       | 数据库连接工具                 |\n| Postman                  | 7.1.0         | 接口测试工具                  |\n| VMware   Workstation Pro | 14.1.3        | 虚拟机(未用到或许你会用到)          |\n| PowerDesigner            | 15            | 数据库设计工具(未用到或许你会用到)      |\n| SQLyog                   | 12.0.3        | 数据库连接工具 (未用到或许你会用到)     |\n| Visio                    | 2013          | 时序图、流程图等绘制工具(未用到或许你会用到) |\n| ProcessOn                | ——            | 架构图等绘制工具(未用到或许你会用到)     |\n| XMind   ZEN              | 9.2.0         | 思维导图绘制工具(未用到或许你会用到)     |\n| RedisDesktop             | 0.9.3.817     | redis客户端连接工具(未用到或许你会用到) |\n\n#### 编码规范\n\n- 规范方式：严格遵守阿里编码规约。\n- 命名统一：简介最大程度上达到了见名知意。\n- 分包明确：层级分明可快速定位到代码位置。\n- 注释完整：描述性高大量减少了开发人员的代码阅读工作量。\n- 工具规范：使用统一jar包避免出现内容冲突。\n- 代码整洁：可读性、维护性高。\n\n#### 包的结构\n```\n +- student_server -- 服务端\n    +- src\n    |   +- main\n    |   |    +- java\n    |   |    |    +- com\n    |   |    |    |    +- augie\n    |   |    |    |    |    +- student_server\n    |   |    |    |    |    |    +- controller -- 控制器类 负责接收和处理HTTP请求\n    |   |    |    |    |    |    +- entity -- 实体类\n    |   |    |    |    |    |    +- mapper -- MyBatis框架的数据访问层\n    |   |    |    |    |    |    +- service -- 服务类 程序的业务逻辑 与控制器类和数据访问层的服务交互\n    |   |    |    |    |    |    +- StudentServerApplication.java -- 应用程序入口类\n    |   |    +- resources\n    |   |        +- mapper -- MyBatis Mapper XML文件 数据库访问\n    |   |        +- application.yml -- 应用程序的配置信息\n    |   +- test\n    |  \t|\t+- java -- 测试代码\n    +- target -- Maven建项目时自动生成的目录\n    +- 数据库脚本\n    +- .gitignore -- 指定需要 Git 忽略的文件或目录\n    +- LICENSE -- 开源软件的授权协议\n    +- pom.xml -- \n    +- README.en.md -- 项目的相关信息文档 英文\n    +- README.md -- 项目的相关信息文档\n +- student_client -- 客户端\n     +- public -- 公共的静态资源文件夹 不需要经过 Webpack 打包处理\n        +- favicon.ico -- 网站的图标\n        +- index.html -- 项目的默认页面 整个应用的入口页面\n     +- src\n        +- assets -- 静态资源文件 如图片、字体等\n        +- components -- Vue 组件\n        +- plugins -- 插件\n        +- router -- 路由配置\n        +- store -- Vuex 状态管理模式\n        +- views -- 页面级组件\n        +- App.vue -- 根组件 协调整个应用程序的视图和管理应用程序的状态\n        +- main.js -- 项目的入口文件\n     +- .gitignore -- 指定需要 Git 忽略的文件或目录\n     +- babel.config.js -- 配置 Babel 编译器的 JavaScript 配置文件\n     +- LICENSE -- 开源软件的授权协议\n     +- packge.json -- 项目元数据的文件 用于描述 Node.js 应用程序或模块的属性\n     +- packge-lock.json -- 锁定当前安装的包的版本号和依赖关系\n     +- READE.md -- 项目的相关信息文档\n```\n#### 后端技术栈\n\n| 技术                          | 版本    | 说明                                            |\n|-----------------------------|-------|-----------------------------------------------|\n| spring-boot-starter-web     | 未指定   | Spring Boot Web 框架的基础组件                       |\n| mybatis-spring-boot-starter | 2.2.2 | MyBatis 和 Spring Boot 的集成组件                   |\n| mysql-connector-java        | 未指定   | MySQL 数据库驱动                                   |\n| lombok                      | 未指定   | Java 实体类代码简化工具                                |\n| spring-boot-maven-plugin    | 未指定   | Spring Boot Maven 插件，用于打包和运行 Spring Boot 应用程序 |\n#### 前端技术栈\n\n| 技术                     | 版本      | 说明                      |\n|------------------------|---------|-------------------------|\n| core-js                | ^3.6.5  | JavaScript 标准库          |\n| element-ui             | ^2.4.5  | 基于 Vue.js 的组件库          |\n| vue                    | ^2.6.11 | 渐进式 JavaScript 框架       |\n| vue-router             | ^3.2.0  | Vue.js 的官方路由管理器         |\n| vuex                   | ^3.4.0  | Vue.js 的官方状态管理库         |\n| @vue/cli-plugin-babel  | ~4.5.0  | Vue CLI 的 Babel 插件      |\n| @vue/cli-plugin-router | ~4.5.0  | Vue CLI 的路由插件           |\n| @vue/cli-plugin-vuex   | ~4.5.0  | Vue CLI 的 Vuex 插件       |\n| @vue/cli-service       | ~4.5.0  | Vue CLI 的核心服务           |\n| axios                  | ^0.18.0 | 基于 Promise 的 HTTP 库     |\n| vue-cli-plugin-axios   | ^0.0.4  | Vue CLI 的 Axios 插件      |\n| vue-cli-plugin-element | ^1.0.1  | Vue CLI 的 Element UI 插件 |\n| vue-template-compiler  | ^2.6.11 | 编译 Vue.js 模板的编译器        |\n\n#### 安装教程\n- 1.数据库：在navicat中运行数据库脚本生成对应的数据库表\n- 2.后台启动：导入项目，在src/main/resources/application.yml文件里更改数据库名称或数据库密码,进入控制台，到项目所在路径，执行命令：mvn clean spring-boot:run\n- 3.前台启动：导入项目，进入控制台，到项目所在路径，执行命令：npm install 后 npm run serve，访问对应的地址进入到登录界面\n- 4.登录用户名密码如下\n\n```\n用户id:1\n用户密码：1234\n用户类型: 学生\n\n用户id:4\n用户密码：1234\n用户类型: 教师\n\n用户id:6\n用户密码：123\n用户类型: admin\n```\n\n![](readme/sb-1.png)\n\n![](readme/sb-2.png)\n\n![](readme/vue-1.png)\n\n![](readme/vue-2.png)\n\n#### 项目截图\n\n![](readme/s-1.png)\n\n![](readme/s-2.png)\n\n![](readme/s-3.png)\n\n![](readme/s-4.png)\n\n![](readme/s-5.png)\n\n![](readme/s-6.png)\n\n![](readme/s-7.png)\n\n![](readme/s-8.png)\n\n![](readme/s-9.png)\n\n#### 拓展知识\n\n1. babel.config.js的作用\n```\nbabel.config.js 是用来配置 Babel 编译器的 JavaScript 配置文件，主要用于将新版本的 JavaScript 代码转换为低版本的 JavaScript 代码，从而实现浏览器兼容性。在 Vue 项目中，Babel 被用来转换 ES6/ES2015+ 代码到 ES5 代码，这样浏览器就可以支持这些新的 JavaScript 特性。\n\n在 babel.config.js 文件中，可以配置 Babel 的插件和预设，以及其他选项，如：\n\npresets：指定一组预设，用来转换代码。\nplugins：指定一组插件，用来扩展 Babel 的功能。\ninclude：指定需要进行 Babel 转换的文件目录。\nexclude：指定不需要进行 Babel 转换的文件目录。\n总之，babel.config.js 的作用是帮助开发者在项目中使用最新的 JavaScript 特性，同时确保代码可以在大多数浏览器中运行。\n\n```\n2. packge.json的作用\n\n```\npackage.json 是一个包含项目元数据的文件，用于描述 Node.js 应用程序或模块的属性。它通常位于项目的根目录下，并且是每个 Node.js 项目的必备文件之一。其主要作用包括：\n\n1. 用于记录应用程序或模块的名称、版本、描述、作者、许可证等元数据信息。\n2. 定义项目的依赖项和开发依赖项，以及它们的版本号和版本范围。\n3. 定义脚本命令，以便于在项目中使用 npm 执行一些常见的任务，例如测试、构建、运行等。\n4. 允许其他人轻松地了解你的项目，并根据其信息进行安装、使用、修改或贡献。\n在一个 Vue 项目中，package.json 文件通常会包含有关 Vue.js 的相关依赖以及其他与项目相关的依赖信息。\n通常情况下，你可以通过修改 package.json 文件中的依赖项来安装新的依赖项或更新现有的依赖项。同时，\n你也可以在其中定义一些自定义的脚本命令来运行你的 Vue.js 项目的不同构建任务，例如打包、测试等。\n```\n3. packge-lock.json\n\n```\npackage-lock.json 文件是 npm5+ 版本引入的一种新的文件，用于锁定当前安装的包的版本号和依赖关系，确保团队中每个人在使用相同的依赖版本时，构建的结果始终一致。它记录了包的版本、依赖关系和下载地址等信息，防止因为依赖关系不一致而导致的构建失败、安装包版本不一致等问题。\n\npackage-lock.json 文件会在 npm install 命令执行时自动生成和更新。当安装依赖时，npm会查找 package.json 中所列出的依赖包和版本，然后将这些依赖包及其依赖包的依赖包下载并安装到本地的 node_modules 目录中，并在生成 package-lock.json 文件时记录这些依赖包的版本和依赖关系。当其他开发者下载这个项目时，只需要运行 npm install 命令就可以安装相同版本的依赖包，以保证开发环境的一致性。\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavaobjects%2Fstudent","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjavaobjects%2Fstudent","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjavaobjects%2Fstudent/lists"}