242
社区成员
这个作业属于哪个课程 | FZU_SE_teacherW_4 |
---|---|
这个作业要求在哪里 | 团队作业 概要设计和数据库设计 |
团队名称 | 风云预报队 |
这个作业的目标 | 系统设计与数据库设计 |
其他参考文献 | 《构建之法》、数据库设计说明书 |
系统的架构采用前后端分离模式。前端主要负责用户界面与用户体验,使用Vue.js框架进行开发,提供响应式设计和良好的交互效果。用户可通过前端界面进行资源浏览、课程评价、个人信息管理等操作,所有数据请求通过RESTful API与后端进行交互。
后端使用Spring Boot框架构建,负责处理业务逻辑、数据存储及安全管理。后端系统包含多个模块,包括用户管理、资源管理、课程评价和统计分析。用户管理模块处理注册、登录、权限验证等功能,资源管理模块负责维护学习资源的上传、下载及分类,课程评价模块实现用户对课程的评价功能,统计分析模块则用于生成各类数据报表,帮助管理者获取系统使用情况及用户反馈。
数据库采用MySQL进行数据存储,设计合理的数据表结构以支持高效查询和数据关系的维护。所有业务逻辑层将通过Spring Data JPA进行数据访问,确保数据库操作的简单性与安全性。
系统还集成了用户权限控制功能,确保不同角色(如用户、管理员)具有不同的操作权限,保障系统的安全性与数据的保密性。系统将提供友好的用户界面,使得用户可以方便地使用各项功能,并通过数据分析为用户提供个性化的学习建议。
整个系统将部署在Docker容器中,方便进行版本管理和资源隔离,确保各个模块的独立性与可扩展性。同时,通过CI/CD工具实现持续集成与持续部署,提高开发效率与代码质量。总的来说,系统的设计既满足用户的基本需求,也为未来的扩展与优化奠定了基础。
1.用户登录ER图
列名 | 数据类型 | 长度 | 约束 |
---|---|---|---|
*id* | INT | 4 | 主键 |
*username* | VARCHAR | 20 | 非空 |
*password* | VARCHAR | 20 | 非空 |
列名 | 数据类型 | 长度 | 约束 |
---|---|---|---|
*id* | INT | 4 | 主键,外键 |
*nickname* | VARCHAR | 30 | 非空 |
*gender* | VARCHAR | 5 | 非空 |
*age* | INT | 4 | 非空 |
*major* | VARCHAR | 30 | 非空 |
*wallet_amount* | DECIMAL | 11 | 非空 |
列名 | 数据类型 | 长度 | 约束 |
---|---|---|---|
*course_id* | INT | 4 | 主键 |
*course_name* | VARCHAR | 30 | 非空 |
*university* | VARCHAR | 40 | 非空 |
*teacher* | VARCHAR | 20 | 非空 |
*description* | TEXT | 非空 |
列名 | 数据类型 | 长度 | 约束 |
---|---|---|---|
*review_id* | INT | 4 | 主键 |
*course_id* | INT | 4 | 外键,非空 |
*reviewr* | VARCHAR | 30 | 非空 |
*review_content* | TEXT | 非空 |
列名 | 数据类型 | 长度 | 约束 |
---|---|---|---|
*material_id* | INT | 4 | 主键 |
*material_info* | VARCHAR | 255 | 非空 |
列名 | 数据类型 | 长度 | 约束 |
---|---|---|---|
*file_id* | INT | 4 | 主键 |
*user_id* | INT | 4 | 外键,非空 |
*material_id* | INT | 4 | 外键,非空 |
*file_name* | VARCHAR | 255 | 非空 |
*file_path* | VARCHAR | 255 | 非空 |
*file_size* | BIGINT | 8 | 非空 |
*upload_time* | TIMESTAMP | 非空 | |
*file_type* | VARCHAR | 255 | 非空 |
*other_info* | TEXT | 非空 |
列名 | 数据类型 | 长度 | 约束 |
---|---|---|---|
*post_category_id* | INT | 4 | 主键 |
*post_category_description* | VARCHAR | 255 | 非空 |
列名 | 数据类型 | 长度 | 约束 |
---|---|---|---|
*post_id* | INT | 4 | 主键 |
*post_category_id* | INT | 4 | 外键,非空 |
*title* | VARCHAR | 100 | 非空 |
*content* | TEXT | 非空 | |
*author* | VARCHAR | 30 | 非空 |
*post_time* | DATETIME | 非空 | |
*read_count* | INT | 4 | 非空 |
*like_count* | INT | 4 | 非空 |
*comment_count* | INT | 4 | 非空 |
*status* | VARCHAR | 20 | 非空 |
列名 | 数据类型 | 长度 | 约束 |
---|---|---|---|
*subject_id* | INT | 4 | 主键 |
*subject_name* | VARCHAR | 255 | 非空 |
设计思路:
识别主要实体:从系统设计说明书和需求说明书中提取主要实体,如用户、课程、评价、管理员等。
定义属性和方法:为每个实体定义必要的属性(例如,用户的昵称、专业)和方法(例如,添加课程、提交评价)。
确定关系:分析实体之间的关系,如用户与课程之间的关联(多对多),管理员与课程的管理关系(一对多)。
抽象和继承:识别可以抽象化的类。
确保一致性:与需求说明书保持一致,确保所有功能在类图中都有体现。
迭代完善:初步设计后,与团队成员讨论,收集反馈,进一步完善类图。
系统安全:
系统权限:
Q: 用例图之间的联系过于繁杂,有些功能是否应该独立出来?
答:我们一开始犯了将用例的执行进度和功能当作判断用例之间关系的判断标准,导致了用例图之间的联系过于复杂。我们将用例图进行修改,将一些功能独立出来,减少与其他功能之间的联系,优化功能关系。
Q: 在类图中,用户类的功能是否过多?
答:我们只考虑了用户的功能,没详细考虑到很多功能的实现并不是简单的,很可能与其他类还有进行数据交互,没有想到利用其他类来帮助实现对应功能。我们设计更多地类模块作为中间件,帮助实现各种相应的功能,增强类的独立性。
团队成员主要在qq群中进行任务分配和交流:
学号姓名 | 工作内容 | 贡献度 |
---|---|---|
222200121林一飞 | ||
222200124郑为强 | 数据库表设计,E-R图设计 | 16% |
222200215汪明昊 | 作业博客撰写,上台答辩汇报 | 17% |
222200322罗文强 | 完成系统设计和数据库设计ppt | 17% |
222200324郑昱 | 系统设计说明书主体、校对文档 | 17% |
222200325郑晓鹏 | 功能模块图,类图绘制 | 16% |
222200326郑钰哲 | 编写数据库设计说明书,数据表设计 | 17% |
周次 | 日期范围 | 开发阶段 | 里程碑/产出 |
---|---|---|---|
第1周 | 2024.10.25-2024.10.31 | 项目启动 | 完成项目会议,明确任务分配,学习相关技术 |
第2周 | 2024.11.1-2024.11.7 | Alpha冲刺 | 完成系统整体设计,完成核心功能开发(登录、注册等),开始其他功能开发 |
第3周 | 2024.11.8-2024.11.12 | Alpha冲刺 | 完成所有功能开发(资料分享、评价等),发布Alpha版本 |
第4周 | 2024.11.13-2024.11.19 | Beta冲刺 | 完成系统测试,开始bug修复 |
第5周 | 2024.11.20-2024.11.26 | Beta冲刺 | 完成bug修复,完成优化,发布Beta版本 |
第6周 | 2024.11.27-2024.12.11 | 项目总结与反馈 | 完成项目总结报告,收集用户反馈 |
学号姓名 | 角色 | 分工 |
---|---|---|
222200324郑昱 | PM、前端 | 团结项目管理,进度追踪。负责用户界面模块 |
222200325郑晓鹏 | 前端 | 负责前端部分开发。负责页面之间的导航,配置前端路由 |
222200124郑为强 | 前端 | 负责前端部分开发。参与课程评价界面,管理员界面 |
222200322罗文强 | 后端 | 负责后端部分开发。API设计,负责用户管理模块 |
222200215汪明昊 | 后端 | 负责后端部分开发。负责课程管理模块,权限控制模块 |
222200121林一飞 | 后端 | 负责后端部分开发。负责资料管理模块 |
222200326郑钰哲 | 测试 | 对项目模块提交代码进行测试,编写测试文档 |