辣评项目起源与初期架构设计(一)

 

项目背景与目标

辣评项目起源于微信机器人基础架构,最初是一个微信 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 - 比赛规则

初期功能规划

第一阶段功能

  1. 用户管理
    • 用户注册与登录
    • 用户信息管理
    • 角色权限管理
  2. 投稿管理
    • 投稿创建与编辑
    • 投稿列表展示
    • 投稿删除
  3. 评论管理
    • 评论创建与展示
    • 评论统计
    • 评论筛选
  4. 比赛管理
    • 比赛信息配置
    • 比赛届次管理
    • 参赛资格管理
  5. 数据统计
    • 基础统计功能
    • 排行榜展示
    • 数据导出

项目结构规划

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 平台架构。

本文遵守 Attribution-NonCommercial 4.0 International 许可协议。 Attribution-NonCommercial 4.0 International