项目背景与目标
辣评项目起源于微信机器人基础架构,最初是一个微信 WeChat Bot 项目(SamgeBotWx)。项目逐步演进,从微信机器人扩展为完整的小说投稿与评论管理平台。
项目演进历程
- 初期(2023年2月): 微信机器人基础架构
- 中期(2023年-2024年): 扩展为投稿评论管理系统
- 现阶段(2024年-2026年): 完整的 Web 平台
核心目标
- 提供便捷的小说投稿渠道
- 实现灵活的评论管理机制
- 支持多届次比赛管理
- 提供数据统计与分析功能
初期技术选型
在项目初期,我们选择了 Go 语言和微信机器人框架作为主要开发基础。
微信机器人架构
- 框架: WeChat Bot(微信机器人)
- 语言: Go
- 核心模块:
cmd/wxBot/- 微信机器人主程序cmd/utils/- 通用工具库cmd/iface/- 接口定义
微信机器人功能模块
- botHandler - 机器人事件处理
botLogin.go- 登录处理botFriends.go- 好友管理botGroups.go- 群组管理botMine.go- 个人信息botCreate.go- 创建功能botCommon.go- 通用功能
- botMsg - 消息处理
botMessage.go- 消息主处理msgFriend.go- 好友消息msgGroup.go- 群组消息msgMp.go- 公众号消息
- botUtil - 工具函数
botArticle.go- 文章处理msgUtil.go- 消息工具botErrorUtil.go- 错误处理botLogUtil.go- 日志处理
通用工具库
u_date/- 日期处理u_file/- 文件处理u_http/- HTTP 请求u_openai/- OpenAI 集成u_str/- 字符串处理u_bot/- 机器人工具
技术栈选择
- 运行时: Go
- 数据库: SQLite
- 部署: Docker
- 配置管理: config.json
选型理由
- Go 提供高性能和并发能力
- 微信机器人提供即时通讯基础
- SQLite 轻量级,适合初期开发
- Docker 便于部署和扩展
基础数据库设计
初期数据库设计包含以下核心表结构:
用户相关表
users- 用户基本信息user_roles- 用户角色关系
内容相关表
submissions- 投稿信息comments- 评论信息competitions- 比赛信息
统计相关表
statistics- 统计数据leaderboard- 排行榜数据
配置相关表
settings- 系统设置rules- 比赛规则
初期功能规划
第一阶段功能
- 用户管理
- 用户注册与登录
- 用户信息管理
- 角色权限管理
- 投稿管理
- 投稿创建与编辑
- 投稿列表展示
- 投稿删除
- 评论管理
- 评论创建与展示
- 评论统计
- 评论筛选
- 比赛管理
- 比赛信息配置
- 比赛届次管理
- 参赛资格管理
- 数据统计
- 基础统计功能
- 排行榜展示
- 数据导出
项目结构规划
project/
├── cmd/
│ ├── wxBot/ # 微信机器人主程序
│ │ ├── botConfig/ # 机器人配置
│ │ ├── botHandler/ # 事件处理
│ │ ├── botModel/ # 数据模型
│ │ ├── botMsg/ # 消息处理
│ │ ├── botUtil/ # 工具函数
│ │ └── main.go # 入口文件
│ ├── utils/ # 通用工具库
│ │ ├── u_bot/ # 机器人工具
│ │ ├── u_date/ # 日期处理
│ │ ├── u_file/ # 文件处理
│ │ ├── u_http/ # HTTP 请求
│ │ ├── u_openai/ # OpenAI 集成
│ │ └── u_str/ # 字符串处理
│ └── iface/ # 接口定义
├── docker/ # Docker 配置
├── database/ # 数据库文件
└── config/ # 配置文件
核心目录说明
- cmd/wxBot/ - 微信机器人的核心实现,包含登录、消息处理、事件处理等
- cmd/utils/ - 可复用的工具库,提供日期、文件、HTTP、OpenAI 等功能
- docker/ - Docker 部署配置,便于容器化部署
- database/ - SQLite 数据库存储位置
- config/ - 系统配置文件,包含机器人配置、API 密钥等
总结
项目初期采用 Go 语言 + 微信机器人 + SQLite 的技术栈,设计了完整的数据库结构和功能规划。这为后续的功能开发奠定了坚实的基础。
初期架构特点
- 轻量级: 使用 SQLite 数据库,无需复杂的数据库部署
- 即时通讯: 基于微信机器人,提供即时的消息处理能力
- 高性能: Go 语言的并发特性保证了系统的高性能
- 易部署: Docker 容器化部署,简化运维工作
在接下来的开发过程中,我们会逐步实现这些功能,并根据实际需求进行调整和优化。随着功能的不断扩展,我们将从微信机器人架构演进为完整的 Web 平台架构。