Community Platform Patterns 是一套面向社区平台建设的设计模式与代码参考,目标是在可持续的审核机制与有意义的互动设计下,构建有参与感的社区产品。资料以 Python 代码片段的形式给出核心实现思路。
一、用途 该模式集用于指导社区平台从数据建模到互动、审核、事件与通知的完整设计,适用于论坛、读书会、沙龙、工作坊、答疑支持等社区形态。
二、核心数据模型 资料定义了成员角色枚举 MemberRole(member、moderator、admin)与内容状态枚举 ContentStatus(draft、published、hidden、archived),其中 hidden 表示被版主软删除。核心实体包括:
- Member:id、display_name、bio、joined_at、role、reputation(默认 0)。
- Discussion:id、title、body、author_id、category、status、created_at、reply_count、view_count、pinned、locked。
- Reply:id、discussion_id、author_id、body、parent_id(可为空,用于嵌套回复)、status、created_at、upvotes。
三、讨论论坛 资料给出三种帖子展示模式:平铺(按时间顺序,适合公告和线性对话)、嵌套(适合技术讨论,分支有价值)、混合(平铺加引用回复,适合一般讨论)。并给出 get_discussion_with_replies 示例,支持 chronological、threaded、popular 三种排序。
四、分类与标签 资料给出 CATEGORIES 示例,包含 reading-group、announcements(仅版主可发)、help、showcase、meta,每项含描述与颜色。
五、声誉系统 采用基于行为的积分:发讨论 +2、回复 +1、被点赞 +5、点赞他人 +1、被标记为答案 +15、被版主隐藏 -10。权限等级按声誉阈值解锁:0 可读与回复;10 可发讨论与点赞;50 可编辑自己的帖子与举报内容;100 可创建事件与添加标签;500 可编辑 wiki 帖子;1000 可提名版主。get_privileges 函数按阈值累加权限。
六、内容审核 定义 ModerationAction 枚举:approve、hide、warn、ban_temporary、ban_permanent。flag_content 示例在举报数达到 3 时自动隐藏内容并通知版主。社区准则 GUIDELINES 包含尊重他人、保持主题、禁止垃圾信息、引用来源、不进行人身攻击。moderate 函数记录审核动作,对 hide 更新状态并通知作者,对 warn 发送警告。
七、事件管理 Event 实体包含 id、title、description、organizer_id、event_type(reading-group、salon、workshop、office-hours)、starts_at、ends_at、location(线上为 URL,线下为地址)、capacity、rsvp_count、recurring(weekly、biweekly、monthly)。create_recurring_events 示例按周等周期批量生成重复事件。
八、通知系统 NotificationType 枚举包含 reply、mention、upvote、event_reminder、mod_action。send_notification 示例会读取用户通知偏好,若类型未被静音则创建通知,并在开启邮件且类型匹配时发送邮件。
九、反模式 资料列出应避免的做法:没有新手引导流程;只有扁平结构而无分类标签;没有审核工具(应从第一天就构建);无目的的游戏化;一刀切的通知;没有归档策略(旧讨论应可搜索但不干扰活跃信息流)。
十、适用场景与限制 适用于需要搭建社区平台、论坛或活动型社区的开发者参考。资料未提供具体安装命令、依赖、运行环境、收费或价格信息,也未给出完整可运行项目结构,相关内容暂未提供。