v2ex作为国内程序员聚集地,它的社区功能和分类节点模式非常值得学习,有时候我在想,如果由我来做一套社区程序,会怎么样做呢?会有哪些功能呢?
技术架构
- 基于PHP7开发
- 使用Mysql作为数据库
- 使用Redis作为缓存系统
- 使用Vue.js开发前端工程
- 使用Node.js打包前端工程
- 使用PHP作为SSR后端渲染(v8引擎)
- 动静分离优先考虑首屏加载时间
- 适用于分布式集群部署
价值理念
一个优秀的社区应该具有以下几个显著特点:
- 能够聚集到有共同爱好/兴趣的人群
- 鼓励用户贡献有价值的主题/回复,避免低质量的内容
- 基于话题而非固定的分类/节点进行内容划分
- 社区内容应该是阳光的可以被公众广泛接受的
- 完善的内容控制/审核机制
- 基于用户的downvote机制对内容进行自动隐藏
- 使用积分系统对用户行为/内容产出进行引导
- 完整的主题/换肤功能
- Web/Mobile自适应
- 优秀的用户体验,产品功能简单、易用(编辑器等)
产品行为
-
积分系统
- 每日签到获取积分(产出)
- 主题被回复得到积分,积分扣除20%的系统费用(产出)
- 使用积分创建主题(消耗)
- 使用积分回复主题(消耗)
- 使用积分打赏作者(消耗)
- 使用积分对主题贴进行投票(消耗)
- 使用积分购买主题贴(消耗)
- 使用积分进行私信pm沟通(消耗)
- 使用积分购买社群虚拟/现实礼品(消耗)
- 不受欢迎(downvote)主题/回复被系统确认后(过多人隐藏)获得积分回馈(产出)
- 推介社区获得积分返利(产出)
-
主题/回复系统
- 主题/回复需要经过后台审核,发布后自身(登陆状态)可以直接看到,审核后公众(其他人)才能看到
- 发布主题/回复需要消耗积分
- 新主题1小时以内可以进行编辑,48小时内可以进行内容append
- 主题/回复无法自行删除
- 超级管理员/管理员可以对主题/回复进行删除或直接downvote,相关权限操作会被记录
- 主题/回复可以被"感谢",感谢的发送方消耗积分,接收方得到积分,积分会被扣除20%的税点
- 主题/回复可以被"不受欢迎"(downvote),被过多人隐藏(隐藏/会员流量数比例)的内容将不被直接展示(内容收缩),同时所有downvote参与者收到积分奖励
- 主题可以被用户收藏
- 可以在主题/回复中@任意用户,被@的用户将收到提醒
- 基于用户权值获得主题贴的初始权值,然后根据主题贴的互动增加/减少排序权值
- 回复内容按照从远到近的方向排列,回复分页后首先进入的是最后一页
- 主题/回复使用WYSIWYG可视化编辑器,同时支持markdown模式
- 每个主题贴可以自行贴上最多3个TAG
-
用户系统
- 使用email进行用户注册
- 使用email进行密码找回管理
- 可以针对单个用户进行block,block后将不会再看到该用户的主题/回复
- 用户与用户之间可以进行pm私信沟通,pm消耗积分
- 用户会根据积分进行排行
- 用户可以被授予"认证头衔"(通过积分系统购买或管理员授予)
- 用户可以被管理员封禁,封禁只有永久封禁
- 用户可以被"特别关注","特别关注"的人发表主题帖时关注者将收到通知(粉丝系统)