需求规格说明书
0. 目录
- 需求规格说明书
- 0. 目录
- 1. 引言
- 1.1 目的
- 1.2 背景
- 1.3 定义
- 1.4 参考文献
- 2. 项目概述
- 2.1 产品背景
- 2.2 产品描述
- 2.3 产品功能
- 2.4 未来市场
- 2.5 应用目标与作用范围
- 2.6 用户场景
- 2.7 假设与约束
- 2.7.1 假设
- 2.7.2 约束
- 3. 具体需求
- 3.1 外部接口需求
- 3.1.1 用户接口
- 3.1.2 硬件接口
- 3.1.3 软件接口
- 3.1.4 通信接口
- 3.2 功能需求
- 3.2.1 界面设计
- 登录
- 首页
- 记录
- 文章
- 流星
- 用户信息
- 3.2.2 UML类图
- 3.2.1 界面设计
- 3.3 性能需求
- 3.3.1 精度需求
- 3.3.2 静态数量化需求
- 3.3.3 动态数量化需求
- 3.4 属性
- 3.4.1 可用性
- 3.4.2 安全性
- 3.4.3 可维护性
- 3.5 技术实现
- 3.1 外部接口需求
- 4. 验证验收标准
- 4.1 文档验收标准
- 4.2 软件验收标准
- 4.3 界面验收标准
- 4.4 功能验收标准
- 4.5 迭代记录表格
1. 引言
1.1 目的
为明确软件需求、安排项目规划与进度、组织软件开发与测试,撰写本文档。 该文档详尽说明了这一软件产品的需求和规格,这些规格说明是进行设计开发工作的基础和编写测试的主要依据以及验收的标准。
该文档面向的读者:
- 项目经理:项目经理根据该文档了解预期产品的功能,并据此进行系统设计
- 设计员:对需求进行分析,并设计出系统,包括数据库的设计
- 程序员:了解系统功能,开发编码
- 测试员:根据本文档对软件产品进行功能性测试和非功能性测试
- 用户:了解预期产品的功能和性能,并与分析人员一起对整个需求进行讨论和协商
1.2 背景
软件名称:福小研
项目任务提出者:福州大学计算机与大数据学院教学办
项目任务:软件工程实践
项目开发者:福州大学2022级软件工程实践 "研途无忧"小组
本项目需求系根据实际用户问卷调查且充分考虑潜在用户的实际情况,同时经过了大量的小组讨论后得出的大致软件需求,与其他软件或组织机构没有关系。
1.3 定义
序号 | 缩写 | 定义 |
---|---|---|
1. | App | 应用程序,Application 的缩写,一般指手机软件。 |
2. | Android | Android 是一种基于 Linux 的自由及开放源码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由 Google 公司和开放手机联盟领导及开发。 |
3. | Bug | 狭义概念是指软件程序的漏洞或缺,广义概念除此之外还包括测试工程师或用户所发现和提出的软件可改进的细节、或与需求文档存差异的功能实现等。 |
1.4 参考文献
《计算机软件需求规格说明规范》(标准号:GB/T 9385-2008)
2. 项目概述
2.1项目logo
2.2 产品背景
根据中国教育在线考研频道发布的《2024全国研究生招生调查报告》显示,2011年-2022年,十年间,虽然研究生招生总量实现了翻倍,但总体报名与录取比例基本保持了相对的平稳,大约在35%。因此我们团队着眼大量考研学子,怀着一颗真诚的心,致力于打造一款贴近每一位考研学子的APP。我们深知,备考过程中,有时孤独会让人失去动力,有时信息的分散会让人茫然无措,有时压力山大无处释放。而我们,就是希望用技术的力量,缓解这些痛点,让考生不再独自奋斗。作为计算机学院的大三学生,我们不仅懂技术,更懂得考研路上的艰辛与期盼。我们希望通过"福小研"APP,提供智能的学习规划、精准的资料推荐、贴心的心理支持,成为考生们备考路上最值得信赖的伙伴,让考生们研途无忧。
2.3 产品描述
福小研,以下称本产品。本产品是基于 Android 和 ios 平台的一个结合了智能考研学习规划
、考研资源精准推荐、为考生提供心理支持、寻找研友等功能的,用以助力考研上岸的 App。
- 项目流程图
2.4 产品功能
本产品主要有以下功能,可能随着版本迭代而适当增删。
- 日历打卡功能,同时显示考试倒计时,自己可以根据自身情况发布个性化任务并点亮完成任务。
- 提供"赛博自习室"、考生可以自选封面,进行打卡,帮助考生进行考研任务管理。
- 为考生进行学情分析,帮助考生规划学习进度并提升学习效率,通过实时分析助力每一步的成长。
- 汇集课程中心、题库和考研快讯,帮助考生精准获取备考信息、资料,全面覆盖备考中的每一个关键环节。
- 提供知识库训练后的AI的题目解答服务,辅助考生提高问题解答能力。
- 提供社区,考生可以进行问题求助、发帖、参与打卡活动和讨论分享,为备考之路增添更多交流和激励。
- 提供个性化中心服务,展现考生学习进度,记录备考历程,帮助考生追踪学习效果,展示考生独特成就。
- 鼓励开源,用户可以通过上传资源获取"福币",用来在"小福铺"兑换实体资源。
2.5 未来市场
本产品核心立足于为考研学生提供全面、个性化的学习支持和资源推荐。而市面已有产品不能满足该类需求。并且在后疫情时代,越来越多的考生倾向于通过移动应用来获取学习资源和支持。因此,本产品的未来市场相对广阔。
2.6 应用目标与作用范围
本产品适用于所有准备参加研究生入学考试的学生,涵盖本科毕业生、在职人员以及跨专业考生等不同群体。本产品帮助考生提高学习效率和增强心理素质,帮助他们有效管理备考进程。同时,产品还适合希望寻找学习伙伴、进行经验交流和获取心理支持的用户,提供一个集学习、交流与激励于一体的综合性备考平台。通过这一平台,考生能够在竞争激烈的考研环境中获得全面的支持与指导,实现从备考到成功的转变。
2.7 用户场景
甲用户 | 备考初期考生 |
---|---|
心理情况 | 刚开始准备考研,充满激情但对备考规划感到茫然。 |
典型情况 | 考研目标不明确,备考方法较为盲目,容易因为信息分散而感到无措。 |
动机、目的 | 希望找到一款能够帮助自己进行系统化备考规划、学习资源推荐的工具。 |
典型场景 | 使用福小研App,设置自己的目标院校和专业,获得定制的学习计划和资料推荐,帮助高效备考。 |
用户定位 | 福小研的核心目标用户群,渴望通过系统化的工具提高备考效率。 |
乙用户 | 备考中期考生 |
---|---|
心理情况 | 备考时间较长,感到学习进度缓慢,有时会产生焦虑和自我怀疑。 |
典型情况 | 复习过程中遇到瓶颈,对自身进度的把控不够,缺乏动力。 |
动机、目的 | 希望能够借助工具掌握学习进度、检测复习效果、关注考研咨询,同时寻求心理支持来缓解压力。 |
典型场景 | 福小研App通过学习进度分析功能提供详细报告,帮助用户跟踪复习情况,心理支持模块通过鼓励语和情绪管理工具帮助用户调节情绪。 |
用户定位 | 福小研的主力用户,功能需求集中在学习规划与心理支持。 |
丙用户 | 备考冲刺阶段考生 |
---|---|
心理情况 | 进入考研冲刺阶段,精神压力大,复习强度高,容易感到疲惫。 |
典型情况 | 临近考试,用户感觉到知识点难以消化,情绪波动大,渴望通过调整心态和复习策略来提升成绩。 |
动机、目的 | 希望通过精准的资料推荐、加油张中问题求助和心理调节功能增强备考效果。 |
典型场景 | 使用福小研的AI题库和智能练习推荐功能,快速提升知识点掌握,同时使用App的心理支持模块调节状态,确保备考冲刺阶段的稳定发挥。 |
用户定位 | 福小研的高频活跃用户,极其依赖产品中的心理支持和智能推荐功能。 |
丁用户 | 跨专业考生 |
---|---|
心理情况 | 跨专业考研,面对新的领域和学科,备考压力大,学习难度增加。 |
典型情况 | 用户在备考时对专业知识的把握不如本专业考生,需要额外的辅导和资源支持。 |
动机、目的 | 希望通过App获取针对性的学习资料和智能辅导,同时在贴子里寻求帮助,寻找同道中人,并填补知识上的不足。 |
典型场景 | 福小研为用户推荐跨专业的专项辅导资料和视频课程,帮助用户快速上手新的领域。 |
用户定位 | 用户数量大约占26%,特别需要个性化的学习资源推荐功能。 |
戊用户 | 在职考生 |
---|---|
心理情况 | 在职备考,时间紧张,复习压力大,经常因工作原因无法保持稳定的复习节奏。 |
典型情况 | 用户白天上班,晚上和周末复习,缺少系统规划和有效的时间管理,常常感到时间不够用。 |
动机、目的 | 希望通过App帮助合理规划复习时间,借助智能辅导进行题目讲,并获取碎片化学习资源。 |
典型场景 | 福小研根据用户的作息安排,生成适合在职考生的学习计划,提供短时复习任务和资料,帮助在有限时间内高效备考。 |
用户定位 | 此类用户最少,使用APP的时间较为零散,但对时间管理和复习效率有高度需求。为 |
2.7 假设与约束
2.7.1 假设
- 可操作性:假设使用本产品的用户在经过一段时间的熟悉后,可以灵活地操作本产品
- 用户支持:假设本产品开发的各个环节中得到用户的有效支持和积极配合
- 技术支持:假设开发初期,项目架构设计合理,小组成员充分认识本产品的需求,认真学习相关知识。开发过程中遇到的技术问题可以及时得到老师的指导与帮助。开发后期,团队熟练掌握适用于该项目的技术,充分优化系统性能
- 人员配合:假设团队成员的积极合作配合,为了项目的开发和实施,能够合理规划个人时间,并且在必要时,能为团队做出合理牺牲,配合队友完成任务。若小组成员变动,新旧成员能够出色地交接和快速了解项目、投入开发;若小组成员无变动,则假设项目开发过程中不会有突发情况导致项目成员无法正常参与开发工作
- 时间限定:假设项目截止日期不会提前
- 需求限定:假设项目需求确定后不会有太大改动
2.7.2 约束
- 人员约束:团队成员皆为大三学生,共 9 人
- 管理约束
- 本次开发实行以一人担任组长,分为三小组的分工合作的模式。项目要求每个人都要参与到整个开发流程中,确保每个成员都能从项目中学到全流程的开发经验。开放进度并按照进度表进行,开发过程遇到的问题通过小组会议得到一致解决。
- 这是“研途无忧”小组的首次合作,成员之间需要一个磨合的过程,需要明确自身责任,分清各自任务,积极配合,遇到问题组长必须能进行有效的协调,才能快速、较好地完成开发过程。
- 技术约束:小组成员在部分技术的掌握上有所欠缺,特别是在项目管理、代码整合、接口调用和测试等方面,大家的实际项目经验不足。需要在开发中并发学习多种技术和能力。
- 时间约束:开发周期为两个月,时间紧张。开发者不仅需要合理规划时间,还需要在多项任务(如学习、学生工作等)并行的情况下完成项目。这需要每个人高度自律,确保任务按时完成。
- 其他约束:开发期间,每个小组成员除了参与项目开发,还要兼顾多门课程的学习和其他校内外任务,可能会对项目进度产生一定的影响。这要求每个人能够平衡好项目与个人任务,并及时与小组进行沟通协调,避免因为个人事务影响项目进展。
本产品适用于所有准备参加研究生入学考试的学生,涵盖本科毕业生、在职人员以及跨专业考生等不同群体。本产品帮助考生提高学习效率和增强心理素质,帮助他们有效管理备考进程。同时,产品还适合希望寻找学习伙伴、进行经验交流和获取心理支持的用户,提供一个集学习、交流与激励于一体的综合性备考平台。通过这一平台,考生能够在竞争激烈的考研环境中获得全面的支持与指导,实现从备考到成功的转变。
- 3. 具体需求
- 3.1 外部接口需求
- 3.1.1 用户接口
- 3.1.2 硬件接口
- 3.1.3 软件接口
- 3.1.4 通信接口
- 3.2 功能需求
- 3.2.1 界面设计
- 3.1 外部接口需求
读书魂
提供打卡、自习室、任务管理与学情分析功能,帮助考生规划学习进度并提升学习效率,通过实时分析助力每一步的成长。
-
首页
考生在首页可以点击学情分析进入学情分析界面使用app内置的ai助手
也可以点击自习室进入自习打卡
还可以点击添加按键进入任务详情界面添加提醒
同时页面下方的功能就是其他模块的入口,可以帮助考生快速跳转到小研帮、小研圈、上岸人界面 -
打卡详情界面
这个界面提供了考研倒计时,同时允许考生自定义个性化封面以及个人签名
-
任务详情界面
这个界面的提醒功能详细且完全,可以帮助考生更好的规划学习任务
-
自习室打榜界面
这里可以看到大家的学习时长排名
-
学习结束界面
-
打卡分享界面
可以分享自己的学习心得
-
学情分析界面
AI定时根据学习情况生成学情分析,通过自动更新Todolist、统计学习时长等方式,生成详细的学情报告。结合数据分析与可视化图表,帮助考生清晰了解自己的复习状况,调整学习策略。
小研帮
汇集课程中心、题库和考研快讯,考生可精准获取备考资料与信息,全面覆盖备考中的每个关键环节。
-
小研快讯界面
考生可以在这里查看一些报考有关的资讯
-
上传资料界面
考生可以通过这个界面上传学习资料分享
小研圈
考生互动社区,支持发帖、参与打卡活动和讨论分享,为备考之路增添更多交流和激励。
-
进入界面
这个界面是小研圈的首页,考生可以在这里浏览其他考生发布的帖子
点击加号也可发布自己的帖子
-
发布帖子界面
-
发帖规范界面
这里介绍了一些小研圈的发帖规范
-
帖子详情界面
考生点击首页的帖子可以进入具体的帖子查看界面(即本界面查看帖子详情),包括评论等等
-
发表评论界面
考生点击评论按键即可填写自己需要发表的评论
-
活动详情界面(打卡为例)*
不定期发布新活动,调动大家的学习积极性
-
参与打卡界面
-
求解答界面
在这里,考生可以将自己不会的问题发布然后寻求大佬的解答,大佬看到自己擅长的问题也可以主动回答帮助他人并且增加功德(后续可在APP兑换奖励)
-
求助详情界面
-
发布求助界面
-
关注界面
允许考生关注其他用户或感兴趣的话题,随时查看关注用户的发帖、打卡进度及学习动态,方便与志同道合的考研伙伴互动交流,获取更多备考经验与激励。
上岸人
学习进度管理与个性化中心,记录备考历程,帮助考生追踪学习效果,展示个性化成就。
- 个人主页界面
研小fu
App内置的ai助手
- 研小fu详情界面
点击导航栏中间的加号进入ai问答
具体功能包括:
智能解答: 用户可以通过自然语言输入问题,AI系统将分析并返回相关解答,涵盖考研相关的各个方面,如备考策略、资料推荐、学科难点等。
知识库支持: 模块依托广泛的知识库,整合了历年考研信息、教材内容及学长学姐的经验分享,为用户提供权威和实用的参考资料。
个性化服务: AI问答模块根据用户的学习进度和需求,提供个性化的答疑支持,帮助考生更高效地解决学习中的困惑。
心里慰问与支持:如果你心情抑郁不得志,做题做到苦恼,研小fu会给你提供开解,如果你生活中遇到了不可理喻的人,研小fu会陪你一起骂他
-
3.2.2 UML类图
-
3.3 性能需求
* 3.3.1 精度需求
类别 | 字段 | 精度 | |
---|---|---|---|
用户 | 用户ID | userID | 6-9 位数字 |
用户名 | userName | 6-18 位数字或字母 | |
密码 | password | 6-18 位数字或字母 | |
个人简介 | bio | ||
头像 | avatar | 不超过 1MB 的图片 | |
福币 | money | 不超过6位数字 | |
文章 | 标题 | title | 不超过 64 个字符 |
作者 | auther | 不超过 64 个字符 | |
内容 | content | 不超过 10000 个字符 | |
链接 | url | 不超过 128 个字符 | |
评论 | comment | 不超过200字符 | |
收藏 | collection | 不超过6位数字 | |
智能辅导 | 问题 | question | 不超过400个字符 |
答案 | answer | 不超过 2000 个字符 | |
图片 | picture | 不超过 2MB 的图片 | |
任务发布 | 任务内容 | content | 不超过100个字符 |
标签 | label | 不超过 12个字符 | |
开始时间 | start time | 3个字节 | |
结束时间 | end time | 3个字节 | |
分享状态 | isShared | 布尔型 | |
课程 | 链接 | url | 不超过 128 个字符 |
课程名称 | cource name | 不超过24个字符 | |
上传用户 | update user | 6-18 位数字或字母 | |
活动 | 用户名 | userName | 6-18 位数字或字母 |
参与时间 | time | 3个字节 | |
内容 | task content | 不超过200字符 |
* [3.3.2 静态数量化需求](#332-静态数量化需求)
-
支持的终端数量:2000
-
支持的同时在线人数:1000
-
服务器的容量:500G
* [3.3.3 动态数量化需求](#333-动态数量化需求)
暂无此类需求。
* [3.4 属性](#34-属性)* [3.4.1 可用性](#341-可用性)
-
界面优美,操作简单。当涉及“删除”等危险操作时,系统会先给予确认提示
-
稳定性:迭代开发,不断更新版本,修复 Bug,使系统更稳定
-
并发性:能够保证一定数量的用户同时在线使用
-
容错能力:系统具有一定的容错能力,非硬件或通讯故障均能保持运行
* [3.4.2 安全性](#342-安全性)
-
故障处理:系统应能够记录错误信息、生成错误日志,并及时恢复现场
-
访问控制:对普通用户设置访问权限,防止访问越界
-
安全存储:数据库保存在服务器端,定期备份,确保数据不丢失
* [3.4.3 可维护性](#343-可维护性)
-
使用 Github 进行源码管理,保留各版本的源代码
-
文档及代码均遵循事先预定的规范
-
提供用户反馈渠道,确保及时发现和修复 Bug
- 3.5 技术实现
智慧问答系统技术实现方案
福小研智慧答疑系统旨在提供一个高效、智能的考研学习辅助工具,利用最先进的自然语言处理技术帮助考研学生对于一些专业知识和考研问题的疑惑。本次软件设计我们考虑了两种主要的技术实现方案,分别基于不同的技术路径和资源需求。
3.具体需求
3.1 外部接口需求(#31-外部接口需求)
3.1.1 用户接口
3.1.2 硬件接口
3.1.3 软件接口
3.1.4 通信接口
3.2 功能需求(#32-功能需求)
3.2.1 界面设计
研小fu模块——技术实现
- 方案一:使用GPT-4接口进行Few-shot Learning
目标
利用OpenAI的GPT-4模型,通过Few-shot Learning和Prompt Engineering技术,实现一个能够理解和回答复杂考研问题的智慧答疑系统。
实现步骤
-
- 收集典型的考研问题及高质量答案,构建用于Prompt Engineering的数据集。
-
- 设计详尽的Prompt,包括一系列相关的问题和答案,以及用户即时提出的问题。
-
- 在系统后端集成OpenAI的GPT-4 API,发送结构化的Prompt并接收模型生成的答案。
-
- 开发前端界面,允许用户输入问题并展示智能生成的答案。
- 性能优化与测试:
- 对系统进行全面测试,包括功能测试和用户接受测试,确保答案的准确性和响应速度。
技术栈
- OpenAI GPT-4 API
- React for frontend
- Node.js for backend
- 方案二:使用本地训练级(llama)模型
目标
在本地训练一个轻量级的Llama模型,进行微调以适应具体的考研内容,然后部署到服务器上,通过API调用服务。
实现步骤
-
- 下载开源的Llama模型,并选择适合的模型大小和配置。
-
- 在具体的考研学习资料上进行模型微调,使用GPU等硬件资源优化训练过程。
-
- 将训练好的模型部署到服务器,设置API接口处理问答请求。
-
- 开发用户友好的前端界面和稳定的后端服务,确保系统的整体性能。
-
- 进行系统测试,根据反馈调整模型参数和系统配置。
技术栈
- Llama NLP模型
- Python Flask for backend
- React for frontend
- TensorFlow/PyTorch for model training
这两种方案各有优劣,第一方案依赖于强大的云API,易于实现且可扩展性强,但需要持续的API订阅费用;第二方案具有完全的自主控制权和一次性成本,适合资源充足且对数据隐私有较高要求的场景。
读书魂
各块功能实现
1.倒计时日历模块:
-
- 前端可以使用 JavaScript 实现倒计时功能,通过获取当前时间和考研时间的差值计算剩余天数,并使用定时器不断更新显示。
-
- 后端可以使用 Node.js提供数据接口,如果需要保存用户设置的考研日期等信息。
2.打卡功能
-
- 前端使用 HTML、CSS 和 JavaScript 实现打卡界面和交互。后端使用 Node.js 和 Express.js 框架处理打卡请求,将数据存储到数据库中,如 MySQL 或 MongoDB。
3.日历功能
-
- 收集用户的打卡历史数据,以便在日历上展示打卡进度。
-
- 前端可以使用 JavaScript 库如 FullCalendar 实现日历功能,通过调用后端 API 获取打卡数据进行展示。
-
- 后端使用 Node.js 或 Python 等语言提供数据接口。调用后端 API 获取打卡数据,并在日历上展示。可能需要与日期选择组件进行集成,以便用户选择不同日期查看打卡进度。
4.学情分析功能
-
- 收集用户的学习时间、任务完成情况、打卡记录,学习的课程,模拟成绩等数据作为学情分析的依据。
-
- 训练提高AI的学情分析算法的执行效率,减少分析时间。进行不同数据量下的学情分析测试,确保准确性和稳定性。
-
- 后端可以使用 OpenAI的GPT-4 API来进行学情分析,并将结果存储或通过 API 提供给前端展示。前端使用 HTML、CSS 和 JavaScript 展示分析结果。
5.自习室功能
-
- 记录用户在自习室中的开始时间、结束时间和学习时长。收集自习心得等文本数据。
-
- 与后端服务集成,开始和结束自习室计时,并将学习时长和自习心得数据存储到数据库中。可能需要调用排行榜 API 获取学习时长排行榜数据。
-
- 前端使用 JavaScript 实现自习室的计时功能和打卡交互,后端使用 Node.js 处理自习室的请求和打卡结束数据存储,数据库可以选择 MongoDB 等 NoSQL 数据库。
6.今日任务功能
-
- 收集用户添加的任务信息,包括任务名称、描述、开始时间、结束时间、完成进度等。
与后端服务集成,使用node.js,实现任务的添加、编辑、查看和删除操作。调用提醒 API 实现任务进度提醒。
- 收集用户添加的任务信息,包括任务名称、描述、开始时间、结束时间、完成进度等。
-
- 前端使用 HTML、CSS 和 JavaScript 实现任务管理界面和交互,后端使用 Node.js 处理任务相关的请求和数据存储。可以使用定时器或推送服务实现任务提醒。
小研帮
各块功能实现
1.课程并匹配个人计划
-
- API 集成:获取课程数据:前端发送请求获取课程数据,后端通过数据库查询并返回课程列表。
-
- 匹配个人计划:前端根据用户的学习计划和个人信息(如感兴趣的领域、学习目标等)发送请求到后端,由后端进行匹配计算,并返回推荐的课程。
-
- 前端:使用Vue.js或React.js实现课程展示界面。用户点击课程时,可以跳转到课程详情页,并根据匹配的个人计划推荐相关课程。
-
- 后端:使用Node.js与Express.js提供课程匹配和数据服务,结合NoSQL数据库(如MongoDB)存储课程和用户数据。
-
- 算法:使用简单的基于规则的匹配算法,或者基于用户行为的推荐系统算法(如内容过滤)来匹配用户的学习计划和课程。
2.发布资料到广场
-
- API 集成:文件上传:前端通过Axios或其他API调用工具,上传文件到后端。后端接受文件并将其存储到文件存储系统(如AWS S3或Firebase)。
-
- 广场展示:通过API从数据库获取最新发布的资料,并展示在广场上,确保所有用户都能查看到。
-
- 前端:使用HTML5和JavaScript实现文件上传界面,Vue.js或React.js处理资料的展示。
-
- 后端:使用Node.js和Express.js提供文件上传接口,并将上传的资料存储在数据库或文件存储服务中。
-
- 数据库:使用NoSQL数据库(如MongoDB)存储资料的元数据(如标题、描述、文件路径等),并通过查询将数据返回给前端展示。
3.导入网络上的课程
-
- 数据收集:从互联网获取公开课程数据,包括课程名称、来源、描述、链接等。可以通过API或爬虫自动抓取课程信息。
-
- API 集成:Web Scraping/抓取API:使用BeautifulSoup或Scrapy从网页抓取课程数据,或直接集成课程提供商的公开API,导入课程数据。
-
- 数据库存储:抓取到的课程数据需要经过处理后,存储到数据库中,供用户搜索和使用。
-
- 后端:使用Node.js作为后端服务,集成网络爬虫库(如BeautifulSoup或Scrapy),或调用课程提供商的API,定期抓取网络上的公开课程数据。
-
- 前端:使用Vue.js或React.js展示导入的课程列表,并提供筛选和搜索功能。
小研圈
各块功能实现
1.论坛页面
-
- 前端:使用HTML、CSS和JavaScript来构建用户界面和交互。
-
- 后端:使用Node.js和Express框架来处理请求和数据管理。数据库:使用MongoDB来存储帖子数据。创建后端路由:定义获取帖子列表、获取单个帖子详情、点赞、收藏、转发、评论和发布帖子的路由。
2.点赞功能
-
- 前端实现:使用HTML和JavaScript来实现前端部分。在前端创建一个按钮,点击按钮时发送请求到后端API,更新点赞数并显示。
-
- 设计数据结构:我们需要一个数据结构来存储帖子和对应的点赞信息。创建后端API:我们使用Flask(一个Python Web框架)来创建后端API,用于处理点赞请求,更新数据库中的点赞信息。
3.转发功能
-
- 前端技术:HTML:创建页面结构,包括帖子和转发按钮。CSS:美化页面,使按钮具有吸引力。JavaScript:处理用户点击转发按钮时的事件,发送请求到后端。
-
- 后端技术:使用Node.js和Express框架来处理服务器端的逻辑。Node.js和Express:处理HTTP请求,验证用户身份,将帖子转发到用户主页。MongoDB:查询和更新数据库中的帖子和用户信息。
4.发布帖子模块
-
- 使用HTML、CSS和JavaScript来构建这个页面,并通过JavaScript来处理发布和取消操作。HTML:创建一个表单,包含文本填写框、图片输入框、发布按钮和取消按钮。CSS:美化表单,使其看起来更友好。JavaScript:为发布按钮添加点击事件,收集文本和图片数据并处理(例如,发送到服务器)。为取消按钮添加点击事件,清空表单内容。
上岸人
各块功能实现
1.个人信息
-
- 前端:创建用户信息表单,允许用户输入和编辑个人信息。使用 Axios 与后端交互,提交用户信息并获取更新的数据。
-
- 后端:创建用户信息的 API 端点,用于处理获取和更新用户信息的请求。使用 Mongoose 设计用户信息的数据库模型并实现相应的数据操作逻辑。
2.关注与粉丝功能实现
-
- 前端技术:使用 React 构建动态和响应式的用户界面。使用 HTML、CSS 和 JavaScript 进行基础开发。
-
- 后端技术:使用 Node.js 和 Express.js 处理 HTTP 请求和路由。使用 JWT(JSON Web Token) 实现用户认证和授权,确保用户身份的安全性和准确性。使用 MongoDB 和 Mongoose 存储和管理用户数据。使用 Redis 进行缓存,提高数据访问速度。
3.关注功能
-
- 前端:在用户个人页面或动态页面设计关注按钮,方便用户关注或取消关注。使用 Axios 提交关注请求,并更新用户的关注状态。
-
- 后端:创建处理关注操作的 API 端点,包括添加关注和取消关注等功能。
设计关注关系的数据库模型,并实现相应的业务逻辑,如更新关注列表和检查关注状态。
数据库储存两个表,一个user表用于识别用户及是否存在,第二个follower表实现关注与取消关注。
- 后端:创建处理关注操作的 API 端点,包括添加关注和取消关注等功能。
4.规划树功能
-
- 前端开发:使用HTML/CSS设计规划树的界面布局。使用JavaScript和图形库(如D3.js)来绘制规划树。
-
- 后端:使用 Node.js 和 Express.js 处理 HTTP 请求和路由。使用 MongoDB 和 Mongoose 查询用户数据(根据页面一中的学情分析和今日任务完成统计)
3.2.2 UML 类图
3.3 性能需求
3.3.1 精度需求
类别 | 字段 | 精度 | |
---|---|---|---|
用户 | 用户ID | userID | 6-9 位数字 |
用户名 | userName | 6-18 位数字或字母 | |
密码 | password | 6-18 位数字或字母 | |
个人简介 | bio | ||
头像 | avatar | 不超过 1MB 的图片 | |
福币 | money | 不超过6位数字 | |
文章 | 标题 | title | 不超过 64 个字符 |
作者 | auther | 不超过 64 个字符 | |
内容 | content | 不超过 10000 个字符 | |
链接 | url | 不超过 128 个字符 | |
评论 | comment | 不超过200字符 | |
收藏 | collection | 不超过6位数字 | |
智能辅导 | 问题 | question | 不超过400个字符 |
答案 | answer | 不超过 2000 个字符 | |
图片 | picture | 不超过 2MB 的图片 | |
任务发布 | 任务内容 | content | 不超过100个字符 |
标签 | label | 不超过 12个字符 | |
开始时间 | start time | 3个字节 | |
结束时间 | end time | 3个字节 | |
分享状态 | isShared | 布尔型 | |
课程 | 链接 | url | 不超过 128 个字符 |
课程名称 | cource name | 不超过24个字符 | |
上传用户 | update user | 6-18 位数字或字母 | |
活动 | 用户名 | userName | 6-18 位数字或字母 |
参与时间 | time | 3个字节 | |
内容 | task content | 不超过200字符 |
3.3.2 静态数量化需求
静态数量化需求包括以下方面:
- 支持的终端数量:2000
- 支持的同时在线人数:1000
- 服务器的容量:500G
3.3.3 动态数量化需求
暂无此类需求。
3.4 属性
3.4.1 可用性
- 界面优美,操作简单。当涉及“删除”等危险操作时,系统会先给予确认提示
- 稳定性:迭代开发,不断更新版本,修复 Bug,使系统更稳定
- 并发性:能够保证一定数量的用户同时在线使用
- 容错能力:系统具有一定的容错能力,非硬件或通讯故障均能保持运行
3.4.2 安全性
- 故障处理:系统应能够记录错误信息、生成错误日志,并及时恢复现场
- 访问控制:对普通用户设置访问权限,防止访问越界
- 安全存储:数据库保存在服务器端,定期备份,确保数据不丢失
3.4.3 可维护性
- 使用 Github 进行源码管理,保留各版本的源代码
- 文档及代码均遵循事先预定的规范
- 提供用户反馈渠道,确保及时发现和修复 Bug
4. 验证验收标准
4.1 文档验收标准
文档编写符合国际文档编写规范。
- 软件需求规格说明书
- 项目开发计划书
4.2 软件验收标准
软件一切功能正常,并且数据正常在后端保存。运行流畅,不卡顿,不闪退。对大部分 Android 以及IOS手机适配。
- 移动端(Android,IOS 用于用户体验)
- 服务器端(用于支持手机移动端正常运行)
4.3 界面验收标准
界面流畅,不闪退。各个界面之间正常切换。
用户界面:
序号 | 界面名称 | 界面描述 |
---|---|---|
1 | 读书魂页面 | 有背景图,上方有打卡和日历界面,中间部分包含学情分析,自习室,我的计划功能内容,底部包含“读书魂”,“小研帮”,AI功能按钮,“小研圈”和“上岸人”的按钮标志。 |
2 | 打卡日历页面 | 有背景图,上方有打卡和日历界面,中间部分包含日历以及打卡进度,底部包含“读书魂”,“小研帮”,AI功能按钮,“小研圈”和“上岸人”的按钮标志。 |
3 | 学情分析页面 | 有背景图,上面部分包含学情分析内容,底部包含“读书魂”,“小研帮”,AI功能按钮,“小研圈”和“上岸人”的按钮标志。 |
4 | 自习室页面 | 有背景图,上方有Top1霸榜背景,中间部分包含实时自习时间排行和学习结束按钮,底部包含“读书魂”,“小研帮”,AI功能按钮,“小研圈”和“上岸人”的按钮标志。 |
5 | 自习室学习结束页面 | 包含文本框可选输入学习心得,以及打卡按钮。 |
6 | 自习室学习报告页面 | 左上角包含返回按钮,中间部分包含学习报告,有今日学习时长,本周学习时长,最近七天学习时间折线图,下方部分包含累计时间内容。 |
7 | 添加任务界面 | 包含文本框输入任务内容,选择打卡时间,提醒时间,重复周期。 |
8 | 小研帮界面 | 有背景图,上方有课程中心,小研题库和小研快讯的按钮,中间部分包含推荐课程内容,底部包含“读书魂”,“小研帮”,AI功能按钮,“小研圈”和“上岸人”的按钮标志。 |
9 | 课程中心界面 | 包含课程类型列表切换按钮以及课程内容。 |
10 | 小研题库界面 | 包含学科类型列表切换按钮以及题库内容。 |
11 | 小研快讯界面 | 包含最新考研一手资料内容。 |
12 | 上传资料界面 | 包含文本框输入资料内容,支持文件传输。 |
13 | 小研圈页面 | 上方包含“小研圈”字样,右边有搜索键,下方是三个切换按钮”求解答“,“加油站”,和“关注”。中间部分是论坛部分。底部包含“读书魂”,“小研帮”,AI功能按钮,“小研圈”和“上岸人”的按钮标志。 |
14 | 发送帖子页面 | 包含文本框可进行帖子内容填写,发布按钮和查看发帖规范的按钮。 |
15 | 发帖规范页面 | 包含发帖规范内容 |
16 | 加油站内容详情页面 | 包含发布人,关注按钮和帖子详细内容。下方是评论区。底部包含发送评论,点赞,关注图标 |
17 | banner活动页面 | 包含活动标题内容以及进入活动按钮。 |
18 | banner活动内页面 | 包含活动打卡发帖和查看他人帖子以及关注按钮。 |
19 | 求解答页面 | 包含他人发布的求助和解答按钮,以及发布问题按钮。底部包含“读书魂”,“小研帮”,AI功能按钮,“小研圈”和“上岸人”的按钮标志。 |
20 | 发布求助页面 | 包含文本框可填写求助内容以及取消和发布按钮。 |
21 | 求助详情页面 | 包含求助人,求助详细内容以及分享和关注按钮。底部有回复按钮。 |
22 | 关注页面 | 上方包含“小研圈”字样,右边有搜索键,下方是三个切换按钮”求解答“,“加油站”,和“关注”。中间部分是关注内容部分。底部包含“读书魂”,“小研帮”,AI功能按钮,“小研圈”和“上岸人”的按钮标志。。 |
23 | 上岸人页面 | 包含个人基本信息和福币数量。下方包含排行榜,小福铺,规划树,加油站,问答,打卡,收藏查看按钮。底部包含“读书魂”,“小研帮”,AI功能按钮,“小研圈”和“上岸人”的按钮标志。 |
24 | 功德排行榜页面 | 上方有Top1霸榜背景,中间部分福币排行。 |
25 | 小福铺页面 | 包含可兑换内容和兑换价格及兑换按钮。 |
4.4 功能验收标准
需求四象限及各阶段验收标准如图:
4.5 迭代记录表格
迭代编号 | 日期 | 需求变更描述 | 变更原因 | 影响范围 | 负责人 | 状态 |
---|---|---|---|---|---|---|
1 | 2024-10-** | 增加自习室结束学习后打卡能够进行心得记录 | 可以让用户更好地对单次学习内容进行复盘,也能使得用户内容更加充实,提高用户学习结束后的成就感,调动积极性 | 自习室功能 | mx | 已完成 |
2 | 2024-10-** | 在读书魂页面背景图增加切换功能,用户可自定义背景 | 提升用户个性化体验 | 读书魂页面UI | hxy | 待验证 |
3 | 2024-10-** | 小研圈页面的论坛部分增加热门话题推荐 | 提高用户参与度 | 小研圈页面 | zmx | 规划中 |
4 | 2024-10-** | 学情分析页面增加数据分析图表,如柱状图对比不同科目的学情 | 让学情分析更直观 | 学情分析页面 | xh | 已完成 |
5 | 2024-10-** | 求助详情页面的分享按钮增加分享到更多平台的选项 | 扩大求助内容的传播范围 | 求助详情页面 | wq | 规划中 |
6 | 2024-10-** | 发帖规范页面的内容排版优化,更加清晰易读 | 提升用户阅读体验 | 发帖规范页面 | sjh | 待验证 |
7 | 2024-10-** | 关注页面的关注内容部分增加分类筛选功能 | 方便用户查找关注内容 | 关注页面 | ly | 已完成 |
8 | 2024-10-** | 自习室学习结束页面的学习心得文本框增加字数限制提示 | 防止用户输入过长内容影响系统性能 | 自习室学习结束页面 | cl | 待验证 |
9 | 2024-10-** | 上岸人页面的福币数量显示增加变化动态效果 | 增强用户对福币获取的感知 | 上岸人页面 | xff | 未开始 |