Skip to content

Commit 96fcd10

Browse files
committed
feat(docs): 删除架构图文件,更新项目准备文档,完善技术栈与开发环境说明
1 parent 070af42 commit 96fcd10

File tree

5 files changed

+169
-67
lines changed

5 files changed

+169
-67
lines changed

docs/assets/uml/architecture.puml

Lines changed: 0 additions & 54 deletions
This file was deleted.

docs/design/technical_architecture.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ graph TD
9898

9999
### 3.2 后端模块
100100

101-
1. **用户认证模块**:实现用户的登录验证与 JWT 认证。
101+
1. **用户认证模块**:实现用户的登录验证与 Token 认证。
102102
2. **排课逻辑模块**:实现基于智能算法(如遗传算法)的排课功能。
103103
3. **课程数据管理模块**:提供对课程数据的增、删、改、查操作。
104104
4. **冲突检测模块**:实现课程冲突检测与自动调整功能。
@@ -114,9 +114,10 @@ graph TD
114114
4. 用户的操作和结果会实时保存至数据库,并在需要时通过 Redis 进行缓存。
115115

116116
### 模块间交互示意
117-
- **前端与后端**:通过 RESTful API 进行交互。
118-
- **后端与数据库**:通过 Spring Data JPA 进行持久化操作,使用 MySQL 存储数据,使用 Redis 缓存数据。
119-
- **后端与安全模块**:通过 Spring Security 和 JWT 实现认证与授权,确保用户的身份安全。
117+
118+
- **前端与后端**:通过 RESTful API 进行交互「故在设计上使用 CORS 跨域进行设计」。
119+
- **后端与数据库**:通过 Mybatis 进行持久化操作,使用 MySQL 存储数据,使用 Redis 缓存数据。
120+
- **后端与安全模块**:通过 AOP 和 Token 实现认证与授权,确保用户的身份安全。
120121

121122
## 5. 性能与扩展性
122123

@@ -129,12 +130,11 @@ graph TD
129130
### 5.2 可扩展性
130131

131132
- **模块化设计**:各模块之间的耦合度低,便于后期功能扩展和修改。
132-
- **微服务架构**:未来可根据需要将部分模块拆分为独立的微服务,支持按需扩展。
133133
- **云原生部署**:系统架构可以支持容器化部署,利用 Kubernetes 实现自动化的服务部署和管理。
134134

135135
## 6. 安全性设计
136136

137-
- **身份认证**:用户登录后会通过 JWT 获取认证令牌,所有后续请求都必须携带此令牌。
137+
- **身份认证**:用户登录后会通过 Token 获取认证令牌,所有后续请求都必须携带此令牌。
138138
- **权限控制**:使用 AOP 技术进行权限切面管理,确保不同角色用户只能访问他们权限范围内的功能。
139139
- **数据加密**:所有敏感数据(如用户密码)使用加密算法存储,确保数据的安全性。
140140

docs/develop/project_prepare.md

Lines changed: 113 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,114 @@
1-
# 项目准备
1+
# 项目准备文档
22

3-
##
3+
## 项目技术栈
4+
5+
### 后端技术栈
6+
7+
#### 开发框架
8+
9+
- **[Spring Boot](https://springdoc.cn/spring-boot/)**:作为后端开发的主要框架,提供高效的 RESTful API 标准化支持,简化了配置与开发流程。
10+
- **[Spring Security](https://springdoc.cn/spring-security/)**:用于身份认证与权限管理,通过与 AOP 的结合实现精细化的权限控制。
11+
- **[MyBatis](https://mybatis.org/mybatis-3/zh_CN/getting-started.html)**:负责数据持久化操作,并结合 **[MyBatis Plus](https://baomidou.com/introduce/)** 简化开发,提升操作效率。
12+
13+
#### 通信协议
14+
15+
- **RESTful API**:用于前后端之间的数据交互,支持标准化、统一的接口设计。
16+
17+
#### 数据库
18+
19+
- **MySQL**:采用关系型数据库管理课程与排课相关数据,版本为 **8.4.2**
20+
- **Redis**:作为缓存服务,提高系统性能和高并发支持能力,版本为 **7.4+**
21+
22+
---
23+
24+
### 前端技术栈
25+
26+
#### 开发框架
27+
28+
- **[React](https://zh-hans.react.dev/learn)**:实现组件化开发,支持高效的用户界面构建,基于 Vite 提供更快的开发体验。
29+
- **[Redux](https://cn.redux.js.org/api/store/)**:用于全局状态管理,适用于复杂交互场景。
30+
- **[React Router](https://reactrouter.com/home)**:提供强大的路由管理功能,支持多页面与动态切换。
31+
32+
#### UI 框架
33+
34+
- **[Fluent](https://react.fluentui.dev/?path=/docs/concepts-introduction--docs)**:用于快速实现一致的 UI 布局。
35+
- **[Tailwind CSS](https://tailwindcss.com/docs/configuration)**:实现响应式设计和定制化样式。
36+
37+
#### 数据请求与通信
38+
39+
- **[Axios](https://www.axios-http.cn/docs/intro)**:用于 HTTP 请求的处理,支持更高效的 API 调用。
40+
- **[FullCalendar](https://fullcalendar.io/docs)**:提供直观的日历视图,增强课程排布的可视化效果。
41+
42+
---
43+
44+
## 开发环境
45+
46+
- **操作系统**:Windows 11 / macOS Sequoia
47+
- **开发工具**
48+
- 后端:JetBrains IntelliJ IDEA
49+
- 前端:JetBrains WebStorm
50+
- 容器化工具:Docker
51+
- **JDK 版本**:17+
52+
- **Node.js 版本**:18+
53+
- **数据库**:MySQL 8.4.2、Redis 7.4+
54+
- **包管理工具**
55+
- 后端:Maven
56+
- 前端:yarn
57+
- **浏览器支持**:最新版本的 Chrome / Edge / Firefox
58+
59+
---
60+
61+
## 版本控制与项目管理
62+
63+
- **版本控制工具**:Git
64+
- **代码托管平台**:GitHub
65+
- **分支管理策略**
66+
- 主分支(`main`):存储稳定可发布版本代码。
67+
- 开发分支(`develop`):用于新功能集成与测试。
68+
- 功能分支(`feature/*`):为每个具体功能单独创建分支。
69+
- 维护分支(`fix/*`):专用于问题修复的分支。
70+
- **项目管理工具**:GitHub Projects
71+
- **开发流程**:采用 Scrum 敏捷开发模式,按 Sprint 周期迭代开发,确保交付质量和效率。
72+
73+
---
74+
75+
## 项目部署
76+
77+
### 测试环境
78+
79+
- **部署服务器**:实验室服务器(Proxmox VE 虚拟化环境)
80+
- **操作系统**:Linux CentOS Stream 9(LXC 容器)
81+
- **硬件配置**
82+
- CPU:4 核 Intel Xeon E5-2697A v4 @ 2.60GHz
83+
- 内存:ECC DDR4 4GB
84+
- 存储:Samsung SSD 990 PRO 2TB(分配 32GB)
85+
- **部署工具**:Jenkins
86+
- **测试域名**`http://172.16.11.10`
87+
- **特殊需求**
88+
- 模拟跨域场景,不使用 Nginx 代理。
89+
- 前端运行在 80 端口,后端运行在 8888 端口。
90+
- 内外网一致使用内网 IP 地址,通过 VPN 进行访问。
91+
92+
---
93+
94+
## 风险与对策
95+
96+
| 风险类型 | 风险描述 | 对策 |
97+
| ------------------ | ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
98+
| **开发进度延误** | 因需求变更、技术难题或沟通不畅导致进度滞后,影响项目按时交付。 | - 制定详细的项目计划,明确里程碑节点。<br>- 使用任务管理工具(如 GitHub Projects)分解任务,实时监控进度。<br>- 对技术难题进行预研,及时反馈风险。 |
99+
| **数据安全问题** | 用户数据(如个人信息、排课数据)因加密不足或系统漏洞可能泄露。 | - 采用 HTTPS 确保传输安全,结合双向认证。<br>- 使用加盐哈希(如 BCrypt)存储敏感数据。<br>- 定期安全扫描,修复潜在漏洞。 |
100+
| **系统性能问题** | 高并发情况下可能导致系统响应缓慢甚至崩溃。 | - 使用 Redis 缓存热点数据,提高响应速度。<br>- 优化 SQL 查询和代码逻辑,减少性能瓶颈。<br>- 使用压力测试工具(如 JMeter)进行性能评估和调整。 |
101+
| **功能适配问题** | 移动端适配不佳或部分功能缺失,影响用户体验。 | - 使用 Tailwind CSS 提供响应式支持。<br>- 针对不同分辨率设备进行兼容性测试。<br>- 提供独立的移动端界面优化方案。 |
102+
| **突发事件风险** | 服务器故障、数据丢失或外部环境变化(如疫情)可能中断项目进度。 | - 定期进行数据备份,确保生产环境的高可用。<br>- 使用负载均衡和热备份策略增强系统稳定性。<br>- 制定应急预案并定期演练。 |
103+
| **法规合规问题** | 数据存储或隐私保护不符合法律要求(如 GDPR、数据安全法等),可能引发法律风险。 | - 遵循相关法律法规,对用户数据进行匿名化处理。<br>- 在开发过程中加入数据合规性检查环节。 |
104+
| **用户使用问题** | 用户对系统操作不熟悉,可能导致误操作或低效使用。 | - 提供详细的用户手册和操作指南。<br>- 在系统上线前组织用户培训,增强使用技能。<br>- 设立反馈渠道,及时响应用户问题。 |
105+
| **数据准确性问题** | 排课算法或逻辑错误导致时间冲突、重复排课等数据问题。 | - 加强输入校验规则,确保数据质量。<br>- 对关键算法进行全面单元测试和集成测试,覆盖边界情况。 |
106+
107+
---
108+
109+
## 参考资料
110+
111+
- [Spring Boot 官方文档](https://springdoc.cn/spring-boot/)
112+
- [React 官方文档](https://react.dev/)
113+
- [MyBatis 官方文档](https://mybatis.org/mybatis-3/zh_CN/)
114+
- [Redis 官方文档](https://redis.io/documentation)

docs/index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# 智课方舟
22

3-
> 基于AI的大学智慧排课系统「2025-01-18
3+
> 基于AI的大学智慧排课系统「2025-01-23
44
55

66

@@ -52,8 +52,8 @@
5252

5353
### 技术栈
5454

55-
- **前端**:React、Fluent、AntV React Charts、TailwindCss
56-
- **后端**:Spring Boot、Go/Java(涵盖AI算法)
55+
- **前端**:React、Fluent、AntV React Charts、TailwindCss
56+
- **后端**:Spring Boot、Go/Java(涵盖AI算法)
5757
- **数据库**:MySQL、Redis
5858
- **部署平台**:Linux(主要)、Windows/MacOS(测试)
5959

docs/requirements_specification.md

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
# 项目需求说明书
22

33
## 项目名称
4+
45
基于 AI 的大学智慧排课系统
56

67
## 项目背景与意义
8+
79
随着高等教育规模的扩展,传统手工排课方式已难以满足日益复杂的课程安排需求,导致资源利用率低、课程冲突频繁等问题。基于人工智能技术的智慧排课系统旨在通过高效的算法和智能优化,提升高校教学管理的效率与质量,为高校教学改革提供技术支持。
810

911
---
1012

1113
## 项目目标
14+
1215
1. **实现自动化排课**:综合多种排课因素,精准生成课表。
1316
2. **优化资源利用**:提高教室与教师资源的使用效率,减少冲突。
1417
3. **支持个性化需求**:满足用户的特殊课程安排要求。
@@ -17,14 +20,16 @@
1720
---
1821

1922
## 系统功能
23+
2024
### 核心功能模块
25+
2126
1. **智能排课**
2227
- 使用遗传算法等 AI 技术自动生成课表。
2328
- 支持个性化排课策略设置,如教师时间偏好、课程优先级等。
2429
2. **手动调整课表**
2530
- 提供图形化交互界面,支持实时课表调整。
2631
3. **实时冲突检测**
27-
- 动态监控排课冲突,并提供解决方案。
32+
- 动态监控排课冲突,并提供解决方案。
2833
4. **多维数据分析**
2934
- 提供教室利用率、教师工作量等统计数据的可视化展示。
3035
5. **课表管理与导出**
@@ -33,9 +38,49 @@
3338
6. **智能调课**
3439
- 针对节假日或突发事件进行自动调整。
3540

41+
### 基于核心模块所需依赖
42+
43+
1. 用户管理模块:
44+
- 支持用户角色(学校管理员、教师、学生)划分与权限管理。
45+
- 提供用户注册、登录、身份验证(Token)功能。
46+
- 实现教师与课程的绑定管理。
47+
2. 课程与资源管理模块:
48+
- 课程信息管理(课程编号、名称、学分、学时等)。
49+
- 教室资源管理(教室编号、容量、设备信息等)。
50+
- 教师信息管理(教师编号、姓名、可用时间等)。
51+
3. 时间表与日历模块:
52+
- 提供学期时间表基础数据(开学时间、节假日安排等)。
53+
- 支持自定义时间段和课时规则。
54+
- 集成日历库(如 FullCalendar.js)用于图形化展示课表。
55+
4. 排课算法模块:
56+
- 集成遗传算法库,用于生成高效的课表。
57+
- 支持多因素参数优化,如教室优先级、教师偏好、课程优先级等。
58+
- 提供算法配置选项(如种群大小、迭代次数等)。
59+
5. 数据分析与可视化模块:
60+
- 使用数据分析工具(如 Apache ECharts)进行图表展示。
61+
- 提供教学资源统计、课程分布、教室利用率等分析功能。
62+
- 支持导出分析报告(PDF 或 Excel 格式)。
63+
6. 通知与消息模块:
64+
- 支持课表发布后的通知推送(如短信或邮件提醒)。
65+
- 提供教师和学生的消息公告查看功能。
66+
7. 日志与监控模块:
67+
- 集成日志框架记录操作与系统事件。
68+
- 提供异常日志报警功能,便于及时修复问题。
69+
8. 文件导出与打印模块:
70+
- 支持课表的 PDF 和 Excel 格式导出。
71+
- 集成打印功能,支持课表的直接打印。
72+
9. 冲突检测与解决模块:
73+
- 实现实时监控课程安排冲突(如教室重叠、时间冲突等)。
74+
- 提供冲突解决的可选方案,并支持用户确认。
75+
10. 智能调课模块:
76+
- 预置节假日调整、临时变更处理等功能。
77+
- 提供调课建议,并更新相关通知。
78+
79+
3680
---
3781

3882
## 用户需求
83+
3984
1. **学校管理者**
4085
- 希望优化教学资源配置,提升排课效率。
4186
2. **教师**
@@ -46,11 +91,11 @@
4691
---
4792

4893
## 技术要求
94+
4995
1. **架构**
5096
- 前后端分离,采用单页应用(SPA)架构。
5197
- **后端**:使用 Spring Boot 框架实现主要业务逻辑,提供高性能 RESTful API。
5298
- **前端**:使用 React 框架构建用户界面,确保良好的交互体验和可扩展性。
53-
5499
2. **数据库**
55100
- 采用 MySQL 和 Redis 作为主数据存储,支持高并发和快速访问。
56101

0 commit comments

Comments
 (0)