原型设计和UML设计
一、原型设计展示
1. 原型展示在线链接
2. 原型界面主要特点
通过交互式地图使校友对新校园有一个总览式的了解,在每一个地标性建筑可以通过点击建筑本身弹出介绍与大事记,使校友切实地熟悉校园。
我们主要通过姓名、年级、生日和专业进行校友认证。查找以前的数据存入数据库进行匹配,管理员进行审核,审核通过后校友们就可以愉快地通过我们的小程序联系上其他感兴趣的校友了。
如下图,认证后可以查看其他感兴趣的校友的信息,以便与他们取得联系。
二、后端设计展示
1. UML设计
1.1 需求分析(用例图)
用户使用时可以浏览校园资讯,查看活动并进行报名。在福大地图中,可以查看各种建筑及景点的介绍,还可以在对应经典中留下自己的留言,也可以选择虚拟形象后在该地点完成虚拟合影。用户填写必要的信息认证后可认证为校友,可以寻找校友并查看校友信息,以便与校友交流。
管理员使用时可以添加和删除校园资讯、添加和删除活动信息、审核用户信息和校友认证信息、审核及管理校友们在不同各种景点留下的留言。
1.2 业务流程(活动图)
用户使用时,先需要登录软件,然后分别有浏览资讯,查看地图,寻找校友和个人空间四个主要活动。
资讯分为新闻和活动,用户在活动中还可以进行活动报名。
用户查看地图后可以在地图中可以查看各种景点的简介和风景照,可以在各种景点中留下自己的留言。也可以进行虚拟合影,选择自己的虚拟形象后进行虚拟合影。
用户使用寻找校友的功能前需要进行认证,在个人空间中有提供认证通道。用户填写完必要的信息后,系统后端进行审核通过即可使用校友功能,查看其他校友的个人信息及联系方式。
四个活动互不干扰,用户在使用软件期间可以不限次数的重复使用这些功能。
1.3 系统结构(类图)
系统主要由用户类、管理员类构成。
用户类可以使用地点类、资讯类、活动信息类的方法,进行虚拟合影、留言、查看资讯、活动报名等。
校友类继承自用户类,用户经过校友认证后转变为校友。校友额外有匹配校友和查看校友详细信息的方法,以及校友认证所需的一些额外属性。
管理员类用于管理小程序的各种功能。里面有管理活动、管理资讯、管理留言、管理用户信息的方法。
1.4 算法模块(时序图)
用户在小程序中输入想找的校友信息,校友信息被传送至服务器,服务器根据数据库及算法计算出用户想认识的校友并返回到用户的小程序界面。
用户在小程序的资讯中点击想浏览的资讯,在小程序前端中直接跳转到链接对应页面。管理员可以在通过服务器发布和修改资讯,更新资讯内容。
用户在小程序的活动中点击感兴趣的活动,可以跳转至活动介绍,感兴趣可以进入报名页面。管理员可以通过服务器发布和修改活动。
用户在小程序地图对应的地点中进行留言,留言传送至服务器后端等待管理员审核,管理员审核通过后会将留言展示在地图旁边的留言板上。
用户在小程序界面输入必要的认证信息,将认证信息传送至服务器等待管理员审核,管理员审核通过后将信息保存至后端并返回录入成功。失败则返回失败。
2.数据库设计
2.1 E-R图
数据库中主要有地图、管理员、资讯、用户、学生五个实体,实体间的联系和实体的属性如下图E-R图所示。我们的后台管理原型通过该E-R图的方式展示。
2.2 关系数据模型
User
field | type | constraint |
---|---|---|
WXID | int | primaryKey |
WXName | string | |
Phone | int | |
string | ||
Profession | string | |
Address | string | |
Sex | bool | |
Sno | int |
Map
field | type | constraint |
---|---|---|
MapID | int | primaryKey |
MapName | string | |
Intrduction | string | |
Picture | string | |
Message | string |
Information
field | type | constraint |
---|---|---|
InfoID | int | primaryKey |
Tiete | string |
Students
field | type | constraint |
---|---|---|
Sno | int | primaryKey |
Sex | bool | |
Sname | string | |
Sage | int | |
WXID | int | |
Sdate | string |
三、团队协作记录
3.1 团队协作照片
3.2 Leangoo协作记录
3.3 协作记录小结
本次组队项目最重要的一个地方,正是在于对该院庆小程序的需求分析。在每个页面分任务的开始,最重要的即是先对照开题设计的文档进行阅读,了解小程序所规定的主要能需求,以此来导向和约束我们接下来对项目框架的设计和实现。如果没有前期对需求精细阅读和深入分析,那么在结构设计和代码实现中就容易走弯路,甚至可能需要重构。
与此同时,在代码的编写过程中,我们也需要不断对目前所实现的功能同需求分析所确的用户故事的需求进行比较和检查,以保证功能实现的正确性,而测试驱动的编程方法助我们减少了可能出现的对需求的理解偏差。
任务的及时分配与随时调整也是这次给我们带来很多感触的地方,在设计初期就要确定确好每个人的分工,并将每个人的工作量达到饱和,尽可能让工作量均匀分配,不让其部分同学过于辛苦,也不让部分同学过于清闲,且前端与后端的对接要做到非常及时,多模块的设计其实具有先后次序,需要过渡地较为合理,因此我们这次组队编程使用leangoo作为我们敏捷开发的工作分配与指导工具,组长随时根据进度调整leangoo上的务分配,每个人也能很明确地领到自己的任务,正所谓“工欲善其事,必先利其器”。