1、需求分析node
1. 功能需求linux
功能需求应当分为两部分:mongodb
①做者端:shell
做者能够编排图书的目录结构、章节内容,章节内容中包括图片、视频、文字、和集成第三方软件边学边练,能定义常见练习题好比问答题、选择题;数据库
做者编辑时能够预览读者端的效果,手机效果、Web和桌面软件效果,做者能够限制只在某一种或几种终端上使用。后端
②读者端:浏览器
读者端能够经过手机、浏览器或桌面软件使用交互式多媒体图书,能够搜索图书,查看图书目录,根据做者设定能够顺序解锁阅读,或随意跳跃阅读,或部分章节内部必须顺序阅读。app
软件能集成或调用第三方软件,好比阅读过程当中能直接调出vscode或linux shell等第三方软件进行实际操做,并对操做作基本正误判断,而后回到图书继续阅读。性能
2. 质量要求测试
①性能:系统性能要好,效率快,对用户操做的处理要及时
②可靠性:在绝大部分时间内,系统应当正常运行
③易用性:系统操做应当简单,使读者或做者都能快速上手使用
④可修改性:当系统须要更新或添加功能时,可以在必定时间内实现
3. 设计约束与过程约束
软件能集成或调用第三方软件,好比阅读过程当中能直接调出vscode或linux shell等第三方软件进行实际操做,并对操做作基本正误判断,而后回到图书继续阅读。
调出第三方软件应该经过统一的插件模型调用,第三方软件与图书之间的相互转换要自动流畅完成,不须要读者操做。
读者端的手机App、Web或桌面软件使用统一的代码实现,优先考虑先后端为js+nodejs+mongodb;
做者端独立部署,只有在做者发布图书时才将数据导入到读者端系统,以免做者端的操做对读者端系统的影响。
2、概念原型设计
做者端:
读者端:
3、数据类型
关键用例分析:
读者进入app,首先登录,app经过读者输入的用户名与密码与数据库中信息比对,若符合则登录成功
登录成功后,会返回读者的阅读列表,读者能够选择其中一个进行阅读
读者阅读过程当中,能够进行测试,测试完,app会返回给读者一个分数,同时会将读者本次测验的分数返回数据库保存