Skip to content
This repository has been archived by the owner on Aug 10, 2023. It is now read-only.

A simple board-game management system,an archived term project of USTC CS4009 course(Spring,2023).

Notifications You must be signed in to change notification settings

sgong-0224/USTC-CS4009-BGMS2023

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

桌游管理系统(Spring,2023 USTCCS-4009)

README Updated:20230706

主要功能

  1. 用户注册、登录、退出登录、修改密码
  2. 管理员:对桌游信息的增删改查、查看用户、查看或删除借用记录、发送信息提醒用户归还
  3. 用户:借用/归还/续借桌游、检索桌游信息、修改个人信息、查看借用记录和提醒信息

技术实现

数据库:MySQL 后端框架: SpringBoot HTML模板: ThymeLeaf 持久层: Mybatis UI: Bootstrap 登录验证和用户权限: SpringSecurity

依赖项

运行环境(服务端):Java Runtime Environment(=Java 8) Download Java for Windows

​ MySQL MySQL :: Download MySQL Installer

​ Tomcat Apache Tomcat® - Apache Tomcat 9 Software Downloads

编译环境需要更多依赖:Maven Maven – Download Apache Maven

​ Java Development Kit Java Downloads | Oracle 中国

使用说明

*SSL证书为自签发证书,如浏览器弹出安全警告直接无视即可。

*建议使用基于新版Chromium内核的浏览器访问。

运行方法1(Windows):

1.安装依赖:见上节

2.下载release并解压,如未建立数据库连接,执行init.bat;

3.运行服务:在jar包所在目录执行java -jar PACKAGENAME(将PACKAGENAME替换成文件名);

4.访问https://localhost:8443(地址根据实际调整)以使用服务。

运行方法2:

  1. 使用Navicat新建连接library,新建数据库library,右键数据库-->运行library.sql脚本

    或使用MySQL进行类似操作;

  2. 按需编辑/src/main/resources/application.yml

    ​ /src/main/resources/application.properties;

  3. 调试:IDE中找到BoardmanagerApplication类,运行main方法;

  4. 编译:使用Maven进行打包;

  5. 在jar包所在目录执行java -jar PACKAGENAME(将PACKAGENAME替换成文件名)即可运行;

  6. 访问https://localhost:8443(地址根据实际调整)以使用服务。

##目录树结构、数据表结构及建议命名规范

###目录树结构:

编译前建议对照以下列表,将无关的文件和目录删除,以免发生问题。无需理会.gitignore和.git。

📁USTC-CS4009-BGMS2023-master ├─ 📄.gitignore ├─ 📄library.sql ├─ 📄pom.xml ├─ 📄README.md ├─ 📁.mvn │ └─ 📁wrapper │ ├─ 📄maven-wrapper.jar │ ├─ 📄maven-wrapper.properties │ └─ 📄MavenWrapperDownloader.java ├─ 📁.git └─ 📁src ├─ 📁test │ └─ 📁java │ └─ 📁com │ └─ 📁utbm │ └─ 📁Boardmanager │ └─ 📄BoardmanagerApplicationTests.java └─ 📁main ├─ 📁resources │ ├─ 📄application.properties │ ├─ 📄application.yml │ ├─ 📄SSLkey.p12 │ ├─ 📁mapper │ │ ├─ 📄BoardMapper.xml │ │ ├─ 📄NotificationMapper.xml │ │ ├─ 📄PlayerMapper.xml │ │ ├─ 📄RecordMapper.xml │ │ └─ 📄UserMapper.xml │ ├─ 📁templates │ │ ├─ 📄index.html │ │ ├─ 📄login.html │ │ ├─ 📄newpasswd.html │ │ ├─ 📄password.html │ │ ├─ 📄passworderr.html │ │ ├─ 📄register.html │ │ ├─ 📄register2.html │ │ ├─ 📄register_except.html │ │ ├─ 📁admin │ │ │ ├─ 📄Boards.html │ │ │ ├─ 📄Board_add.html │ │ │ ├─ 📄Board_edit.html │ │ │ ├─ 📄Board_info.html │ │ │ ├─ 📄Board_search_result.html │ │ │ ├─ 📄notifications.html │ │ │ ├─ 📄Players.html │ │ │ └─ 📄records.html │ │ └─ 📁user │ │ ├─ 📄Boards.html │ │ ├─ 📄Board_info.html │ │ ├─ 📄Board_search_result.html │ │ ├─ 📄ownNotification.html │ │ ├─ 📄ownRecord.html │ │ ├─ 📄Player_info.html │ │ ├─ 📄Record_add.html │ │ ├─ 📄Record_extend.html │ │ └─ 📄Record_return.html │ └─ 📁static │ ├─ 📁img │ │ ├─ 📄1.jpg │ │ └─ 📄2.jpg │ └─ 📁bootstrap │ ├─ 📁css │ │ ├─ 📄bootstrap-grid.css │ │ ├─ 📄bootstrap-grid.css.map │ │ ├─ 📄bootstrap-grid.min.css │ │ ├─ 📄bootstrap-grid.min.css.map │ │ ├─ 📄bootstrap-reboot.css │ │ ├─ 📄bootstrap-reboot.css.map │ │ ├─ 📄bootstrap-reboot.min.css │ │ ├─ 📄bootstrap-reboot.min.css.map │ │ ├─ 📄bootstrap.css │ │ ├─ 📄bootstrap.css.map │ │ ├─ 📄bootstrap.min.css │ │ └─ 📄bootstrap.min.css.map │ └─ 📁js │ ├─ 📄bootstrap.bundle.js │ ├─ 📄bootstrap.bundle.js.map │ ├─ 📄bootstrap.bundle.min.js │ ├─ 📄bootstrap.bundle.min.js.map │ ├─ 📄bootstrap.js │ ├─ 📄bootstrap.js.map │ ├─ 📄bootstrap.min.js │ ├─ 📄bootstrap.min.js.map │ └─ 📄jquery.js └─ 📁java └─ 📁com └─ 📁utbm └─ 📁Boardmanager ├─ 📄BoardmanagerApplication.java ├─ 📁config │ ├─ 📄CustomPasswordEncoder.java │ ├─ 📄SecurityConfig.java │ ├─ 📄SessionFilter.java │ └─ 📄UserService.java ├─ 📁mapper │ ├─ 📄BoardMapper.java │ ├─ 📄NotificationMapper.java │ ├─ 📄PlayerMapper.java │ ├─ 📄RecordMapper.java │ └─ 📄UserMapper.java ├─ 📁pojo │ ├─ 📄Board.java │ ├─ 📄Notification.java │ ├─ 📄Player.java │ ├─ 📄Record.java │ └─ 📄User.java └─ 📁controller ├─ 📄LoginController.java ├─ 📄UserController.java ├─ 📁admin │ ├─ 📄AdminBoardController.java │ ├─ 📄AdminNotificationController.java │ ├─ 📄AdminPlayerController.java │ └─ 📄AdminRecordController.java └─ 📁user ├─ 📄UserBoardController.java ├─ 📄UserNotificationController.java ├─ 📄UserPlayerController.java └─ 📄UserRecordController.java

数据表结构:

数据表和实体类对应关系:

对应关系无需修改,也不应在开发过程中随意更改,除非你很清楚你在做什么。

对应关系见下图。橙色字体为数据类型,加粗为主键,具有同色彩色背景的数据之间保持同步。

对所有smallint类型数据,1表示"是"或"可用",0表示"否"或"不可用"。

建议命名规范:

·html文件根据功能命名;

Java类文件根据(用户)+(类名)+(功能)命名,如同目录树中展示的那样;

在确保可读性的前提下,采用驼峰(CamelCase)或蛇形命名法(snake_case)均可。

·私有类的名称为对应公有类(如有)名称首字母小写,如私有类recordMapper对应公有类RecordMapper。

·函数名称建议使用首字母小写的驼峰命名法(camelCase)。

·所有依赖关系均已检查过,不需要编辑SQL文件已有的数据项名称。

附录

测试用户信息:

可使用library.sql自带的用户凭据登录和测试(见下表):

用户名 密码 用户类型
admin useradmin 管理员"admin"
user userpass 普通用户"user"
user2 userpass2 普通用户"user"
user3 userpass3 普通用户"user"
user4 userpass4 普通用户"user"

EOF

About

A simple board-game management system,an archived term project of USTC CS4009 course(Spring,2023).

Resources

Stars

Watchers

Forks