移动社交应用
在这个选题中,你需要模仿微信,使用 Web 技术实现一个移动社交应用。
这个网站具有以下特点:
- 分享此时、此地个人活动以及心情:
- 刷存在感,同时获知其他好友的当前状态;
- 可以有朋友地图,看到选择的朋友在干啥;
- 参考他人的活动心得,表达心情,释放情感,增强联系。
- 可以认为是极简版“微信”:
- 重点是好友和朋友圈功能,也可以设置多个朋友圈;
- 可以单发好友或者群发朋友圈,但是只发:此地、活动、心情;可以是文字或者图片。好友可以回复沟通。
- 可以根据大量的用户数据记录进行一定分析。
系统基本功能与流程
具体界面设计和功能安排可自由发挥。
直接抄微信就行了。
登录注册页面
- 用户能够通过用户名和密码登录和注册。注册时需要完善用户名、密码、昵称并选择头像(模仿微信登录注册页面)。
应用主页
- 包含以下三个 Tab (模仿微信主页)。
好友 Tab
- 好友列表,按字母排序。
动态 Tab
-
查看好友发布的动态。
-
支持发布图片或文字动态,动态需要支持选地点、选心情和输入内容。
-
支持好友评论。
用户 Tab
- 用户可以查看并修改自己的基本信息。
技术实现
建议
- 采用前后端分离架构。
- 建议使用 ionic 框架开发移动端 Web 应用,也可选择使用 React Native 开发原生应用(难度更大)。
评分细则
分数组成
-
基本功能分:即完成系统基本内容与流程,满分 100 分。
-
进阶任务分:推荐选做助教列举的功能,能力较强的同学可自定义增加附加功能,最多 30 分。
-
个人工作分:根据小组分工及个人完成工作量得分。每组组员该项分数总和 30 分,根据贡献比例分摊。
个人最终得分 = 基本功能分 + 进阶任务分 + 个人工作分,值域为 [0, 160]。
评分点
功能项 | 得分项 | 最高分数 |
---|---|---|
基本流程 | 注册和登录页面 | 5 |
(30分) | 好友 Tab | 10 |
动态 Tab | 10 | |
用户 Tab | 5 | |
动态 | 能够查看好友发送的动态 | 5 |
(40分) | 支持发送文字动态 | 5 |
支持发送图片动态 | 5 | |
支持选择地点 | 5 | |
支持分组发送 | 10 | |
支持好友评论 | 10 | |
工程能力 | 文档 | 5 |
(30分) | 系统架构 | 10 |
代码风格 | 5 | |
项目完整度和易用性 | 10 | |
附加功能 | 支持更多种类的消息和动态类型(位置、语音等) | 10 |
(30分) | 支持为好友添加标签,按已有的标签分组发布动态 | 5 |
简单的人工智能助手,自动回复消息 | 10 | |
将服务器部署到公有云上 | 10 | |
使用 Docker 部署服务器 | 5 | |
其他合理的附加功能 | 30 |
评分点说明
- 每一项的分数取决于该项功能的完成度。完成度和可用性越好,分数越高。
- 项目完整度和易用性评价标准:
- A. 最低要求为必须实现并完成规定的用户功能与操作。核心功能和技术都有实现,在应用逻辑和实际操作便捷性上可以不做考虑。
- B.基本要求为实现并完成规定的用户功能和操作,并设计合理便捷的操作流程,系统各部分衔接过度自然,方便使用。
- C.进阶要求为实现并完成规定的用户功能、操作和进阶加分项,形成一套完整的可发布的应用逻辑。
- A、B、C 分别对应 0 - 3 分,4 - 6 分,7 - 10 分。
- 附加功能必须在文档中明确写出,概述该功能并简要描述实现。
- 项目设计文档需要至少包含:
- 项目组织以及其中每个文件的说明。
- 关键功能实现的细节。
- 服务器部署配置的详细介绍。
- 团队分工文档需要至少包含:
- 团队成员、分工、具体完成工作,列出每个人的贡献比例。
- 其他你们想说明的问题。
提交
- 提交物包含以下两项:
- 源代码:推荐使用 Git 进行协作,提交到 GitHub 等 Git 托管平台上。
- 文档:推荐使用 Markdown 编写项目文档,与源代码一同提交到 Git 托管平台上。
- 源代码与文档需要压缩打包提交到 FTP 上,文件名中请包含小队所有成员的姓名与学号。
- 友情提示:请尽早开工,本学期只有一个 Project,临时赶工很有可能完不成。