Sym社区系统商业版 背景、功能以及技术架构简介
开发背景 初始研发于2011年 业界缺乏Java写的社区论坛 结合实际运营需求驱动开发 易于扩展的二次开发平台
开源商业化 B3log开源组织 社区版开源协议AGPL 商业版使用授权 Sym软件著作权 云南链滴科技有限公司
客户案例 汇桔网 https://bbs.wtoip.com 四方环视 http://bbs.ivrpano.com 乾学院 http://c.raqsoft.com.cn 一帆时空 https://tapdealing.com (电商导购) 深圳平安(在建中,三村晖教育平台社区) 深圳金蝶(在建中,精斗云社区) ……
功能模块 积分系统 榜单系统 问答系统 贡献系统(用户角色与权限) 货币系统(可对接区块链虚拟货币) 隐私系统(匿名浏览、用户隐私开关) 通知系统 举报系统 搜索系统 微信、第三方账号相关 API
积分系统 大部分操作消耗积分(防止垃圾内容) 每一项积分相关操作均可配置数值
榜单系统 积分排行榜 签到排行榜 贡献排行榜 链接排行榜(站外链接点击) 活跃度排行榜 帖子排行榜
问答系统 提问积分悬赏 采纳答案
贡献系统 对用户贡献进行量化 影响角色,最终影响权限
货币系统 少量二开即可对接区块链 币种管理 钱包地址管理 转账、提币
隐私系统 内容可见性控制(打赏区、仅楼主可见、禁止非登录浏览等) 用户隐私开关
通知系统 详细的通知分类 WebSocket实时通知 合并频繁通知,减少打扰用户 支持浏览器离线通知(Chrome、FF、Edge)
举报系统 举报用户 举报帖子 举报内容可进行忽略/奖励
搜索系统 零开发对接Algolia 少量二开对接Elasticsearch
微信、第三方账号相关 微信公众号、小程序对接 支持通过微博、QQ、微信账号登录
API 提供丰富的API给APP客户端或者其他系统进行交互联动 API文档
其他功能 简单的微博 注销账号 语音摘要 快捷键 匿名发帖 音视频播放 录音发帖 投票表单 多主题 多维度用户数据统计 多语言国际化 ……
环境搭建 JDK 8 MySQL 5.7+ Tomcat/Jetty 9 Maven 细节请参考《Sym安装指南》
技术架构 开发框架 MVC分层 移动端 SEO 性能优化 安全性 集群部署
开发框架 基于Latke开发,类似SpringMVC的轻量级Servlet框架 服务端模板使用FreeMarker 前端jQuery,webpack打包
MVC分层 Processor控制器层,处理AJAX、PJAX、页面渲染 Service服务层,所有交互操作基本都封装在内,兼顾复用与扩展 Repository数据访问层,处理JSON数据存取
移动端 单独一套模板进行渲染 支持PWA
SEO 合理的URL、DOM 所有链接精准设置rel
性能优化 SQL零join 热数据缓存 支持Redis或内存缓存 后端耗时埋点与性能监控日志 前端按需加载图片、JS 前端Service Worker缓存
安全性 全面防御XSS、CSRF 内置CC攻击过滤 支持敏感词配置 可接入微信提供的内容安全校验接口
集群部署 会话通过Cookie校验 使用Redis统一缓存