Idea终稿
| 项目名称 | idea |
|---|---|
| 成员信息 | 31902156 鲁琦 31901040 陈世龙 31901010 陈立 31901009 胡立锦 |
| 团队组号 | 周二上午软件工程——第10组 |
| UML图报告_第一次作业 | https://www.cnblogs.com/kosmonaut/p/15588374.html |
| 需求分析报告_第二次作业 | https://www.cnblogs.com/kosmonaut/p/15652117.html |
| 项目说明书_第三次作业 | https://www.cnblogs.com/kosmonaut/p/15713180.html |
| 项目终稿_第四次作业 | https://www.cnblogs.com/kosmonaut/p/15714084.html |
一、项目背景
在如今繁华的社会下,人类大多数生活需求都能得到满足,甚至享受高品质生活,导致大多数人处于舒适区内,日渐思想闭塞,但是不乏存在极具创造力的人。idea 致力于为所有人提供一个发布具有创新性想法平台,汲取他人的奇思妙想、寻找志同道合的伙伴和感受事物的创造过程。
二、★项目目标
-
发布/浏览想法
-
通过交流和沟通,完善或终结想法
-
通过生命值规则,保留有价值的想法,冻结低价值、过时的想法,提供优质想法
三、项目简介
本项目是一个idea发布和集合平台,致力于为有想法的人提供一个奇思妙想发布平台,并且可以跟志同道合的伙伴共同交流、探讨,碰撞出新的花火,创造出新的事物。
四、开发工具
| 模块 | 开发工具 |
|---|---|
| 原型设计 | 墨刀 |
| 前端 | Flutter |
| 后端 | Golang |
五、项目功能
功能一:想法
-
想法展示
-
想法分类(文本自动分类)
-
想法编辑支持 Markdown
-
想法点赞、评论
功能二:用户
-
个人信息(头像、封面……)
-
关注用户
六、需求分析
目前在如今繁华与浮躁的社会下,许多人每天在互联网花费的时间越来越多,人们经常会上网漫无目地浏览海量的新闻,往往会在从中迷失自我。为了拥有内心的一片天地,创建了一个Idea天地,能给你一个安静的书写角落与分享自己的点子,为你带来一方净土,释放压力,留下回忆。
(一)发布想法方面
为了维护发帖的健康有序运行,需要创建一个生命值来规范,让每个想法都是有生命力的种子,高生命想法受大家喜爱,让他在这个Idea天地能够在这里得到快乐。他可以自己浏览高生命力想法,从而能够与他过往的经历与经验相结合,从而头脑风暴而迸发出新想法。采取不同于市面上的强制推荐算法,俗称“奶头乐”,而是高生命值,让用户自行选择与点击。
(二)想法分类
当社区变得很大的时候,同时规范社区的有序性,每个页面都有分类标签,标签有助于分门别类。不同于主页外,用户可以点击擅长喜爱的领域,进去与友人们探讨想法。
(三)想法相似
考虑到社区的健康性,与保证人们的劳动成果,完全一模一样的想法在我们Idea社区是剔除的,另外每人在发自己想法的时候,会推荐10个类似的想法,先让他取浏览,当浏览后还有更好更新的想法,那么便可以发个自己的想法。
(四)想法查看、点赞
用户可以在一个想法上,可以详细浏览,当认为不错的时候,可以给予点赞评论转发。
七、流程图

八、UML 图

九、ER图

十、时序图

十一、数据流图

十二、用例图



十三、程序界面
引导页
引导页大致介绍了整个app的内容功能(发布有趣想法,发现跟你拥有相同想法的朋友,一起交流探索),让用户对此有个初步的了解,吸引用户兴趣。
登陆注册界面
用户输入邮箱账号、密码并且在验证输入的账号密码合法且正确后,即可登陆点子APP跳转至首页,进行想法畅游,新用户也能进行注册登录。用户在浏览idea和发布idea之前,都需要登录/注册。输入邮箱和密码登录,只支持单点登录。
主界面
主界面主要显示用户发布的想法,每个人都可以为自己认为nice的想法进行点赞和评论,爱心表示当前该想法的生命值(根据颜色的深浅判断)旁边辅以数值,生命值通过生命值规则进行计算得出,这决定了该想法的留存时长和曝光率。
主页可以显示最新的idea和关注的用户最新发布的idea
想法卡片包括:用户头像和用户名,发布内容,生命值,点赞,快捷评论,内容的标签分类,用户可通过标签分类快速跳转至自己感兴趣的标签。
分类界面
用户可以在此界面找到自己感兴趣的分类,以及自己已关注的分类。
- 根据idea的分类显示最新的idea
- 分类在创建想法时由后端算法决定
个人主页界面
用户的个人主页,显示用户的基本信息以及发布过的历史想法,中间的编辑资料按钮可供用户进行个人资料的修改。
想法发布界面
用户可在此界面编辑发布自己的想法,并且支持Markdown,支持预览,系统会根据算法识别出相似的想法显示在界面下方可供用户参考,最终由用户决定是否发送
想法详情界面
想法详情界面会详细显示该想法下的评论与回复以及发布时间,支持二级评论,或许也可以是一个idea从提出到实现的完整“过程图”
十四、算法公式
生命值算法(基于用户投票的排名算法 Hacker News):

W 表示用户等级(分1-8级),WP = W1P + W2P,Wo是想法发布者的
默认值(也为最小值)8e^-1000,接近 0,W 越大,g/W 越小,Score 下降越慢
P 表示帖子的得票数,加 19 是讨论的 P + 20 ,赋予初值
R 表示贴子回答的得票数
T 表示距离发帖的时间(单位为小时),加上 2 是为了防止最新的帖子导致分母过小(之所以选择2,可能是因为从原始文章出现在其他网站,到转贴至Hacker News,平均需要两个小时)。
G 表示"重力因子"(gravityth power),即将帖子排名往下拉的力量,默认值为 1.194
G取1.194,初始(0投票,0回答)20h为0.499<0.5,然后1h执行一次。当生命值为0.5的时候,帖子死亡。当帖子生命值很高的时候,给它设个[精品]标签。

算法参考链接:https://www.ruanyifeng.com/blog/2012/02/ranking_algorithm_hacker_news.html
用户权值算法:

十五、成员分工
| 核心成员 | 项目角色与负责事项 | 贡献比例 |
|---|---|---|
| @鲁琦 | 组长/前端 | 1 |
| @陈世龙 | 前端/后端 | 1 |
| @陈立 | 后端 | 1 |
| @胡立锦 | 算法 | 1 |

浙公网安备 33010602011771号