🚀 一个现代化的社区论坛系统,专注于用户体验和功能丰富性
- 🔐 安全的用户认证(注册、登录、登出)
- 👤 个性化资料管理(头像、个人简介)
- 🛡️ 基于 RBAC 的权限管理
- 👑 多角色支持(普通用户、管理员、超级管理员)
- 📋 多板块内容分类
- 📝 富文本编辑器支持
- 🖼️ 多图片上传功能
- ✏️ 帖子 CRUD 操作
- 💬 树形评论系统
- 👍 帖子点赞/取消点赞
- 💭 评论点赞/取消点赞
- ⭐ 帖子收藏功能
- 🔔 用户关注系统
- 📊 智能内容搜索
- 👥 用户信息检索
- 🎯 多维度模糊匹配
- 📈 用户活跃度分析
- 📊 内容增长趋势图
- 🏆 热门帖子排行
- ☁️ 内容词云可视化
- 🔧 Go 1.23.1
- 🌐 Gin Web Framework
- 💾 GORM + MySQL
- 📦 Redis 缓存
- 🔒 Casbin 权限控制
- 🎟️ JWT 认证
- ☁️ 腾讯云 COS 对象存储
- 🎨 Vue.js 3.x
- 🎯 Element Plus UI
- 🔄 Axios HTTP 客户端
- 🛣️ Vue Router
- 🗃️ Vuex 状态管理
- Go 1.23.1+
- Docker & Docker Compose
- Node.js 16+
- npm 8+
- 使用 Docker Compose 启动 MySQL
cd backend/deploy
docker-compose up -d
MySQL 将以以下配置启动:
- 端口: 3306
- 数据库: TalkSphere
- 用户名: forrest
- 密码: 571400yst
- Root 密码: root
数据库配置说明:
volumes:
- ./mysql/data:/var/lib/mysql # 数据持久化
- ./mysql/conf:/etc/mysql/conf.d # 配置文件
- ./mysql/init:/docker-entrypoint-initdb.d # 初始化SQL脚本
配置参数:
- 默认认证插件: mysql_native_password
- 字符集: utf8mb4
- 排序规则: utf8mb4_general_ci
- 表名大小写不敏感: lower_case_table_names=1
- 克隆项目
git clone https://github.com/yourusername/TalkSphere.git
cd TalkSphere/backend
- 安装依赖
go mod tidy
- 确认配置文件
# 检查配置文件中的数据库连接信息是否与 Docker Compose 中的配置匹配
vim conf/config.yaml
配置示例:
mysql:
host: "127.0.0.1"
port: 3306
user: "forrest"
password: "571400yst"
db: "TalkSphere"
max_open_connection: 20
max_idle_connection: 10
- 启动服务
go run main.go
- 进入前端目录
cd ../frontend
- 安装依赖
npm install
- 开发环境运行
npm run serve
- 生产环境构建
npm run build
TalkSphere/
├── 📂 backend/ # 后端代码
│ ├── 📄 conf/ # 配置文件
│ ├── 📄 controller/ # 控制器
│ ├── 📄 middleware/ # 中间件
│ ├── 📄 models/ # 数据模型
│ ├── 📄 pkg/ # 公共包
│ └── 📄 router/ # 路由
├── 📂 frontend/ # 前端代码
│ ├── 📄 public/ # 静态资源
│ └── 📄 src/ # 源代码
└── 📂 doc/ # 文档
- 👨💻 @taooooooooooooooo - 项目负责人
本项目采用 MIT 许可证。
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature
) - 提交更改 (
git commit -m 'Add some AmazingFeature'
) - 推送到分支 (
git push origin feature/AmazingFeature
) - 提交 Pull Request
感谢所有为本项目做出贡献的开发者!
TalkSphere ©2025 Created by @taooooooooooooooo