第六次团队作业--项目系统设计与数据库设计
这个作业属于哪个课程 | <软件工程综合实践> |
---|---|
这个作业要求在哪里 | <作业要求> |
这个作业的目标 | 设计好系统和数据库,并制定好计划和明确分工 |
作业正文 | 如下 |
团队的github仓库链接 | github仓库 |
团队项目的预期开发计划时间安排
周次 | 团队目标与产出 | 进度状态 |
---|---|---|
第十一周 | 注册小程序appID,搭建云开发环境,统一团队编码和命名规范 微信小程序官方文档和网络视频自学习 前端背景、图片icon、音乐等剪切 |
待完成 |
第十二周 | 前端代码编写 图书馆原始数据清洗、规约并导入云数据库生成集合 |
待完成 |
第十三周 | 前端代码编写 核心业务云函数代码编写、前端调用并测试云函数 |
待完成 |
第十四周 | 前端代码编写 调用云数据库并测试数据有效性和可用性,功能测试、代码优化 |
待完成 |
第十五周 | 挑选体验者体验开发版 反馈后重新优化并测试,发布正式版 |
待完成 |
团队项目的预期开发计划分工安排
组员 | 角色 | 预期分工 |
---|---|---|
鄢宇航 | 后端、数据库 | 云函数、云数据库编写与维护 |
李明特 | 前端 | javascrip事件处理 |
吴家劲 | 前端 | wxml搭建页面结构 |
吕洽闻 | 前端 | wxml搭建页面结构 |
林凯斌 | 前端 | 布局设计,wxss样式设计 |
安泽铭 | 后端 | 图书馆原始数据清洗、挖掘 |
体系结构设计+功能模块层次图、设计类图
-
由于开发团队技术栈参差不齐,为了让每位团队成员都投入体验开发过程,本系统摒弃了传统的自建服务器,在系统功能和技术架构上进行简化。采用当下较为流行的云开发模式,这种技术架构体系可以弱化开发人员的技术要求,通过云数据库和云函数弱化后端和运维,只需要维护核心业务代码,依托云端快速上线应用。顺应了敏捷开发、拥抱云原生等人人都是开发者的开发理念。
-
技术架构图
-
应用架构图
-
功能模块层次图
-
功能类图
-
系统逻辑与使用流程
ER分析+表结构设计、系统安全和权限设计
权限管理:
通过区分不同的访问者、不同的访问类型和不同的数据对象,进行分别对待而获得的数据库安全保密设计考虑。数据库由专门数据库管理员对数据库操作。管理员权限最大,可以控制所有数据。
管理端,或者叫管理员,其实便是指云开发中的云函数环境的执行权限。因为是在云函数中执行,安全系数较高,因而获得了最高的权限,也就是所谓的管理端权限。这个权限包括了对于所有的数据进行增、删、改、查的能力。
创建者,则指的是创建某条数据的用户,一般来说,是指在小程序端创建数据的用户。数据和用户之间的绑定是基于数据中的 _openid 来实现的,程序在执行中,当前用户的 openid 与数据的 _openid一致时,就认为这个用户是数据的创建者。
所有人,指的是除了管理员以外的用户,这个用户一般而言,也是指小程序端的用户。数据和用户之间并不具备直接的关联关系。用户仅能通过数据库权限配置后的开放读取到用户。
数据安全:
在小程序里所有的数据交换都是通过微信私密协议来进行了,这种方式保证了数据交换过程的安全性,请求被篡改或者伪造的难度非常大。
云开发的数据库中每一条由小程序段完成添加的数据都有一个字段 _openid,我们在进行数据库查询时,系统会自动替我们完成这个字段的对比,如果对比不上,再去查询对应集合的权限控制,看是否给予了非创建者可读写的权限。
上次需求分析作业中老师助教给项目提出的问题
1、你们团队的系统是否有WEB端
由于我们系统的功能比较单一,仅仅只是依托图书馆一年中积累的历史数据展示用户的年度借阅账单,因此没有提供web端给管理员使用。
2、你们原型中这些功能是不是全部都要实现呢?
考虑到开发周期和团队自身的技术压力,我们删减了一些功能并对原型进行重构,参考第九小组的设计思路,我们的小程序也采用单页面作为主界面的模式,其他功能以弹窗的形式与用户交互。
我们主要有年度账单和借阅查询两个大模块,之后依托原型围绕这两个功能进行开发。
- 重构后的原型
完成这次作业的工作流程、组员分工、组员贡献度比例
姓名 | 工作内容 | 贡献度 |
---|---|---|
鄢宇航 | 系统和技术架构设计,博客和说明书的撰写与审核,github仓库管理 | 25% |
李明特 | 原型重构,撰写数据库说明书 | 18% |
林凯斌 | ppt制作,系统说明书部分编写 | 15% |
吴家劲 | 功能模块层次图和类图 | 15% |
吕洽闻 | 系统说明书格式修订 | 12% |
安泽铭 | 数据库说明书格式修订 | 15% |
文档地址
系统设计说明书.pdf
提取码:qjaq
数据库设计说明书.pdf
提取码:s396