MyFlag Step2:APP雏形的展现以及相关规范

xiaoxiao2021-02-28  127

引言

进行完MyFlag的产品定位以及相关的核心功能之后,我们团队开始考虑到这个想法的落地。今天我们团队主要针对了以下几点进行了讨论: 具体需求的细化根据需求初步确定mysql表,并进行相关优化后台提供的功能以及接口规范客户端的功能模块相关框架、技术的初步确定微信小程序的移植可行性(可选)

需求细化

初步需求获取之后完成的用例图如下:

整个系统只有用户这一个角色用户首先可以进行注册账号并填写个人信息注册之后才可以登录当前账号登录才能退出用户可以进行相关的设置,其中包括个人资料的设置比如用户名、性别、个性签名等,还可以进行密码的修改用户的好友功能,可以添加好友和删除好友对于核心功能MyFlag,可以新建一个Flag,同时可以邀请好友监督我的Flag并且设置监督奖励,根据每天的情况打卡接受好友的监督社区功能可以显示我以及好友的Flag,并且可以主动申请成为好友某一个Flag的监督人,并且监督好友Flag的完成情况

MySql表

数据库中共包含六个表user(用户)表,friend(好友)表,flag(立的flag)表,member(团队成员)表,supervise(监督表),tempFriend(添加好友)表:

`CREATE TABLE `fg_flag` ( `fid` int(10) NOT NULL AUTO_INCREMENT, `uid` int(10) NOT NULL, `content` blob NOT NULL, `award` blob NOT NULL COMMENT '奖励', `achieve` tinyint(1) DEFAULT NULL COMMENT '是否完成', `isTeam` tinyint(1) NOT NULL COMMENT '单人或团队', `startTime` int(11) NOT NULL COMMENT '开始时间', `endTime` int(11) NOT NULL, `createTime` int(11) NOT NULL, PRIMARY KEY (`fid`), KEY `uid` (`uid`), CONSTRAINT `uid` FOREIGN KEY (`uid`) REFERENCES `fg_user` (`uid`) ON DELETE CASCADE ) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8; CREATE TABLE `fg_friend` ( `aUid` int(11) NOT NULL COMMENT '邀请者', `bUid` int(10) NOT NULL COMMENT '被邀请人', `remark` varchar(10) CHARACTER SET latin1 DEFAULT NULL COMMENT '备注', KEY `aUId` (`aUid`), KEY `bUid` (`bUid`), CONSTRAINT `aUId` FOREIGN KEY (`aUid`) REFERENCES `fg_user` (`uid`) ON DELETE CASCADE, CONSTRAINT `bUid` FOREIGN KEY (`bUid`) REFERENCES `fg_user` (`uid`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `fg_member` ( `fid` int(10) NOT NULL, `uid` int(10) NOT NULL, PRIMARY KEY (`fid`,`uid`), KEY `muid` (`uid`), CONSTRAINT `mfid` FOREIGN KEY (`fid`) REFERENCES `fg_flag` (`fid`) ON DELETE CASCADE, CONSTRAINT `muid` FOREIGN KEY (`uid`) REFERENCES `fg_user` (`uid`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `fg_supervise` ( `fid` int(10) NOT NULL, `uid` int(10) NOT NULL, `agree` smallint(1) DEFAULT '0' COMMENT '是否同意监管,0表示不确定,1失败,2成功', `achieve` smallint(1) DEFAULT '0' COMMENT '是否完成', `evaluate` blob COMMENT '评语', `time` int(11) DEFAULT NULL COMMENT '评定时间', PRIMARY KEY (`fid`,`uid`), KEY `uid` (`uid`), CONSTRAINT `fg_supervise_ibfk_1` FOREIGN KEY (`uid`) REFERENCES `fg_user` (`uid`) ON DELETE CASCADE, CONSTRAINT `fid` FOREIGN KEY (`fid`) REFERENCES `fg_flag` (`fid`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `fg_tempfriend` ( `uid` int(10) NOT NULL, `requestUid` int(10) NOT NULL, `message` varchar(20) CHARACTER SET latin1 DEFAULT NULL, `remark` varchar(10) CHARACTER SET latin1 DEFAULT NULL, `agree` int(5) DEFAULT '0' COMMENT '1表示不同意', PRIMARY KEY (`uid`,`requestUid`), KEY `kl` (`requestUid`), CONSTRAINT `kl` FOREIGN KEY (`requestUid`) REFERENCES `fg_user` (`uid`) ON DELETE CASCADE, CONSTRAINT `ui` FOREIGN KEY (`uid`) REFERENCES `fg_user` (`uid`) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8;CREATE TABLE `fg_user` ( `uid` int(10) NOT NULL AUTO_INCREMENT, `nickname` varchar(20) CHARACTER SET latin1 NOT NULL, `password` varchar(20) CHARACTER SET latin1 NOT NULL, `phone` bigint(11) NOT NULL, `email` varchar(30) CHARACTER SET latin1 NOT NULL, `information` text CHARACTER SET latin1, `sex` varchar(10) DEFAULT '男', PRIMARY KEY (`uid`,`phone`), UNIQUE KEY `un` (`phone`) ) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8; `

后台支持

根据需求可以将后台服务器所提供的功能大体分为以下几个方面: 关于用户 用户注册用户登录修改个人信息修改密码查找用户关于添加好友 添加好友确认添加好友改变备注我的朋友获得好友请求列表创建Flag 创立Flag查看我的Flag查看朋友Flag删除Flag处理要求监督Flag的要求评价Flag获得邀请我监督的请求获得一个flag获取我监督的flag请求监督确认别人的请求监督得到别人想要申请监督我的flag的 消息列表得到我申请监督别人的flag的 消息列表

具体的接口规范大致按照如下格式:

1 用户注册 URL:/user/Register Parameter: nickname 用户昵称 password 用户密码 phone 手机号 (11位) email 电子邮件 information 个人信息 sex 性别(男或者女 String类型 ) return:json格式的id(用户id) 2 登陆 URL:/user/Login Parameter: id 用户的id password 用户密码 return:json格式的user

客户端功能模块

该系统许多操作都需要与服务器进行通信,而这些网络通信又都具有一定的共性,故将所有基本的网络通信方法封装在类util包下NetUtil类中,将具体处理留给实现了接口的子类来实现。

其中已经确定的功能模块有:

网络请求工具类,封装了与服务器通信的方法登录注册创建Flag

相关框架、技术

axure构件原型安卓的界面使用materim designRetrofit2+OkHttp3+RxJava搭建网络框架 daggar2依赖注入服务器端与数据库连接的C3P0

微信小程序移植可行性(可选)

微信小程序,用一个不贴切的说法就是,微信内嵌web view 控件,本质上就是一个定制化的web浏览器,与普通浏览器相比只是增加了一些丰富的内部交互,比如可以轻松用户信息等等,以及可以存放独立缓存等数据,属于虚拟机范畴的优化。MyFlag清晰的逻辑结构以及功能完全可以移植进微信小程序。

总结

团队初步的将整体的框架设想出来并且经过充分的讨论达到一致的看法,仅仅是刚刚开始,有困难的日子还在后面,但我们相信我们一定可以逐步完成我们的项目。
转载请注明原文地址: https://www.6miu.com/read-70115.html

最新回复(0)