Skip to content

Latest commit

 

History

19 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nexus-社区

项目描述: 基于Go语言开发的社区论坛后端系统,支持用户注册登录、帖子发布管理、评论互动等核心功能

技术栈:

  • 后端框架: Gin Web框架
  • 数据库: MySQL + GORM ORM框架
  • 缓存: Redis (用户会话、验证码、热门帖子排行、浏览量统计)
  • 认证授权: JWT Token认证
  • 文件存储: 七牛云OSS对象存储
  • 邮件服务: SMTP邮件发送服务
  • 定时任务: Cron定时任务调度
  • 配置管理: Viper配置文件管理
  • 日志系统: Zap高性能日志框架
  • 热重载: Air实时编译工具
  • 密码加密: bcrypt密码哈希

核心功能实现:

1. 用户认证与授权系统

  • 邮箱验证注册: 实现邮箱验证码注册机制,防止恶意注册
  • 多方式登录: 支持邮箱/用户名登录,提升用户体验
  • 密码重置: 基于邮箱验证码的安全密码重置流程
  • JWT认证: 无状态Token认证,支持用户会话管理
  • 中间件鉴权: 实现JWT中间件进行路由级别的权限控制

2. 内容管理系统

  • 帖子CRUD: 完整的帖子创建、读取、更新、删除功能
  • Markdown支持: 帖子内容支持Markdown格式
  • 标签系统: 多对多关联的标签分类功能
  • 评论系统: 支持多级评论和回复功能
  • 互动功能: 点赞、收藏功能,支持状态切换

3. 高性能缓存架构

  • Redis缓存策略:
    • 验证码缓存(10分钟过期)
    • 发送冷却时间控制(防止频繁发送)
    • 帖子浏览量实时统计
    • 热门帖子排行榜(ZSET数据结构)
  • 缓存同步: 定时任务将Redis数据同步到MySQL,保证数据一致性

4. 文件上传与存储

  • 头像上传: 集成七牛云OSS,支持用户头像上传
  • 文件类型验证: 严格的文件格式和大小限制
  • UUID文件命名: 防止文件名冲突

5. 系统架构设计

  • 分层架构: Controller-Service-DAO三层架构,职责分离
  • 统一错误处理: 自定义错误码和错误处理中间件
  • 统一响应格式: 标准化API响应结构
  • 参数验证: 使用Gin的数据绑定和验证功能
  • CORS支持: 跨域请求处理

6. 数据库设计

  • 用户表: 完整的用户信息管理,包含隐私设置
  • 帖子表: 支持内容、统计数据、关联关系
  • 标签表: 多对多关联设计
  • 评论表: 支持层级评论结构
  • 关联表: 用户点赞、收藏关系表

7. 性能优化

  • 异步处理: 浏览量统计和热门度计算采用异步处理
  • 批量操作: 定时任务批量同步缓存数据
  • 连接池: Redis连接池优化
  • 索引优化: 数据库索引设计

8. 运维与监控

  • 定时任务: 每2分钟同步Redis浏览量数据到MySQL
  • 日志记录: 完整的请求日志和错误日志
  • 配置管理: 环境配置分离,支持热重载
  • 优雅关闭: 服务优雅停机处理

项目亮点:

  1. 高并发处理: Redis缓存 + 异步处理,支持高并发访问
  2. 数据一致性: 缓存与数据库的最终一致性保证
  3. 安全性: JWT认证 + 密码加密 + 参数验证
  4. 可扩展性: 模块化设计,易于功能扩展
  5. 代码质量: 清晰的项目结构,完善的错误处理
  6. 依赖注入: 基于Google Wire的完整依赖注入架构

版本更新记录

v2.0.3 - AI内容审核与用户禁言系统 (2025-09-27)

  • 🤖 AI内容审核: 集成OpenAI API实现智能内容审核,自动检测违规内容
  • 🚫 用户禁言机制: 基于违规次数的渐进式惩罚:首次警告、1天、7天、30天封禁
  • 📊 违规记录: 完整的违规记录系统,包括违规次数、封禁时间和原因
  • ⚡ 自动解封: 封禁到期后自动解封,无需人工干预
  • 🔍 实时检测: 发布前自动进行内容审核,实时反馈审核结果

v2.0.2 - Zap日志系统集成 (2025-09-05)

  • 📝 Zap日志框架: 集成高性能Zap日志系统,提供结构化日志输出
  • 🔄 日志中间件: 实现基于Zap的HTTP请求日志记录
  • 💉 依赖注入: 日志系统完全集成到Wire依赖注入架构
  • 📊 日志分类: 支持不同级别日志和日志文件切割

v2.0.1 - Casbin权限管理系统集成 (2025-09-4)

  • 🔐 Casbin集成: 引入Casbin RBAC权限管理框架,实现细粒度权限控制
  • 🛡️ 权限中间件: 提供RequirePermission、RequireAdmin、RequireRole等中间件
  • 👤 角色管理: 支持admin和user角色,实现资源级别的权限控制
  • 🔄 权限持久化: 权限数据存储在数据库中,支持动态管理

v2.0.0 - 依赖注入架构重构 (2025-08-22)

  • 🔧 Wire依赖注入: 引入Google Wire框架,实现完整的依赖注入架构
  • 🏗️ 架构重构: 将所有层级从全局变量改为依赖注入模式
  • ⚙️ 配置管理: 配置对象通过依赖注入传递,移除全局配置变量
  • 🔒 中间件改造: JWT等中间件完全基于依赖注入,提升可测试性和可维护性

About

Nexus for everything

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages