跳到主要内容

CmsKit 仿掘金平台开发指南

一个功能完整的仿掘金内容社区平台,基于 .NET 10 + FreeSql 构建

🎯 项目概述

CmsKit 是基于 FreeKitModules 框架开发的内容管理系统,目标是打造一个功能媲美掘金平台的技术社区。项目采用 DDD 架构,支持文章发布、沸点动态、用户互动、智能推荐等核心功能。

核心特性

  • 文章系统: 支持 Markdown/富文本编辑,草稿保存,分类标签
  • 沸点系统: 短内容发布,话题讨论,投票功能
  • 用户互动: 点赞评论,关注订阅,实时通知
  • 搜索功能: MeiliSearch 全文搜索,智能推荐
  • 权限控制: 基于角色的权限管理,内容审核

📊 功能对比与完成度

功能模块掘金标准当前状态完成度优先级
文章编辑器Vditor 高级编辑器基础 Markdown 编辑器60%🔴 高
实时通知SignalR 实时推送基础异步通知50%🔴 高
全文搜索MeiliSearch 智能搜索数据库查询40%🔴 高
个性化推荐智能推荐算法简单热度排序25%🔴 高
定时发布支持定时发布仅草稿箱功能30%🟡 中
专栏系统小册/专栏管理基础分类功能40%🟡 中
多媒体支持视频/图片优化基础附件上传60%🟡 中
用户成长等级/勋章系统积分系统设计40%🟡 中
社交功能@用户/私信关注/点赞/评论70%🔵 低

🚀 快速开始

环境要求

  • .NET 10.0+
  • MySQL 8.4+ 或 SQL Server / PostgreSQL / SQLite
  • Redis 6.0+
  • MeiliSearch 1.0+(可选,用于全文搜索)

快速部署

  1. 克隆项目

    git clone https://gitee.com/your-repo/FreeKitModules.git
    cd FreeKitModules/src/Services/CmsKit
  2. 配置数据库

    # 更新连接字符串 appsettings.json
    # FreeSql CodeFirst 模式,应用启动时自动同步表结构
  3. 启动服务

    cd FreeKit.CmsKit.Host
    dotnet run
  4. 访问应用

Docker 部署

# 使用Docker快速启动
docker-compose up -d

# 包含以下服务:
# - CmsKit应用服务
# - SQL Server数据库
# - Redis缓存
# - MeiliSearch搜索引擎

📚 文档导航

文档描述适用对象
系统架构设计技术架构和系统设计说明架构师/开发者
系统架构业务功能和 DDD 分层设计架构师/开发者

🎯 开发路线图

Phase 1: 核心体验提升 (2-3 个月)

  • 基础文章和沸点系统
  • 编辑器增强 - Vditor 集成,图片上传优化
  • 实时通知 - SignalR 集成,实时消息推送
  • 搜索优化 - MeiliSearch 完善,搜索建议
  • 个性化推荐 - 基础推荐算法,用户画像

Phase 2: 功能完善 (2-3 个月)

  • 专栏系统 - 专栏管理,付费内容
  • 用户成长 - 等级权益,成就勋章
  • 多媒体支持 - 视频处理,图片优化
  • 定时发布 - FreeScheduler 集成,任务调度

Phase 3: 高级功能 (1-2 个月)

  • 社交增强 - 私信系统,@用户功能
  • 平台运营 - 数据分析,内容运营工具
  • 性能优化 - 缓存策略,数据库优化

💼 技术栈

后端技术

  • 框架: .NET 10, ASP.NET Core Web API
  • ORM: FreeSql (CodeFirst,支持多数据库)
  • 事件驱动: CAP + RabbitMQ
  • 缓存: FreeRedis (Redis 7.4)
  • 搜索: MeiliSearch v1.13 (全文搜索)
  • 任务调度: FreeScheduler (基于 FreeRedis)
  • 实时通信: SignalR (实时推送)

数据存储

  • 主数据库: MySQL 8.4(亦支持 SQL Server / PostgreSQL / SQLite)
  • 缓存层: FreeRedis (Redis 7.4)
  • 搜索引擎: MeiliSearch v1.13
  • 文件存储: 本地存储 / 阿里云 OSS

开发工具

  • 架构模式: DDD (领域驱动设计)
  • API 文档: Swagger/OpenAPI
  • 代码质量: SonarQube
  • 容器化: Docker + Docker Compose

快速开始

1. 注册模块

List<Type> typeAssemblies = new List<Type>()
{
typeof(Program),
typeof(IApplicationService),
typeof(FreeKitModule),
typeof(CmsKitModuleStartup),
};

containerBuilder.RegisterModule(new FreeKitModule(typeAssemblies.ToArray(), null));
containerBuilder.RegisterModule(new UnitOfWorkModule(typeAssemblies.ToArray(), null));

2. 依赖注入配置

services.AddModule<CmsKitModuleStartup>("module-cmskit", c);

3. CAP 分布式事务配置

var assemblies = new List<Assembly>
{
typeof(BasicIdentityModuleStartup).Assembly,
typeof(CmsKitModuleStartup).Assembly,
};

services.AddKitCap(c)
.AddSubscriberAssembly(assemblies.ToArray());

4. Swagger 配置

var projectNames = new List<string>()
{
"FreeKit.CmsKit",
"FreeKit.BasicIdentity"
};
services.AddSwagger(c, projectNames);

🤝 贡献指南

开发流程

  1. Fork 项目到个人仓库
  2. 创建功能分支 git checkout -b feature/new-feature
  3. 提交更改 git commit -am 'Add new feature'
  4. 推送分支 git push origin feature/new-feature
  5. 创建 Pull Request

代码规范

  • 遵循 C# Coding Conventions
  • 使用有意义的命名
  • 编写单元测试 (覆盖率>80%)
  • 添加 XML 文档注释

问题反馈

  • Issues - 报告 Bug 或功能建议
  • 查看本文档站获取详细文档
  • 欢迎 PR 和技术讨论

📊 项目状态

Build Status Code Coverage License .NET Version

📝 更新日志

v1.2.0 (2024-XX-XX)

  • ✨ 新增 Vditor 编辑器支持
  • 🚀 实时通知系统优化
  • 🔧 搜索功能增强

v1.1.0 (2024-XX-XX)

  • ✨ 沸点系统完善
  • 🐛 修复权限控制问题
  • 📝 完善 API 文档

v1.0.0 (2024-XX-XX)

  • 🎉 首个正式版本发布
  • ✨ 基础文章和用户系统
  • 🚀 完整的 CRUD 功能

📄 许可证

本项目采用 MIT 开源协议。

🙏 致谢

感谢所有为这个项目做出贡献的开发者!


让我们一起打造优秀的技术社区平台! 🚀