Cursor rule
.cursor/rules/project-structure.mdcCodeSpirit 项目结构详细说明 - 完整的项目目录树和组件分类
Cursor rules
Quality
54/100
Scores the file, not the repository.Length
650 words
22 headings · 2 code blocksRepository
56
— · pushed 134 days agoLast changed
3 days ago
First indexed 3 days ago.1234567# CodeSpirit 项目结构89## 完整目录树1011```12Src/13├── ApiServices/ # API服务层14│ ├── CodeSpirit.AiCardsApi/ # AI卡片API服务15│ ├── CodeSpirit.ApprovalApi/ # 审批工作流API服务16│ ├── CodeSpirit.ConfigCenter/ # 配置中心API17│ ├── CodeSpirit.ContentApi/ # 内容管理API18│ ├── CodeSpirit.DigitalPartner.Plugins.ExamAnalyst/ # 考试分析插件(AI伙伴工具)19│ ├── CodeSpirit.ExamApi/ # 考试系统API20│ ├── CodeSpirit.FileStorageApi/ # 文件存储API21│ ├── CodeSpirit.IdentityApi/ # 身份认证API22│ ├── CodeSpirit.MallApi/ # 商城API23│ ├── CodeSpirit.MessagingApi/ # 消息服务API24│ ├── CodeSpirit.PartnerApi/ # 伙伴API(AI助手前端)25│ ├── CodeSpirit.PathfinderAgent/ # Pathfinder代理(AI目标管理代理)26│ ├── CodeSpirit.PathfinderApi/ # Pathfinder API(AI目标管理)27│ └── CodeSpirit.SurveyApi/ # 问卷调查API28├── Components/ # 独立组件库29│ ├── CodeSpirit.Aggregator/ # 数据聚合器组件30│ ├── CodeSpirit.AiFormFill/ # AI表单智能填充组件31│ ├── CodeSpirit.Amis/ # AMIS界面生成引擎32│ ├── CodeSpirit.Audit/ # 审计追踪组件(含LLM审计)33│ ├── CodeSpirit.Authorization/ # 权限管理组件(RBAC+ABAC)34│ ├── CodeSpirit.Caching/ # 分布式缓存组件(多级缓存+分布式锁)35│ ├── CodeSpirit.Charts/ # 智能图表组件36│ ├── CodeSpirit.ConfigCenter.Client/ # 配置中心客户端37│ ├── CodeSpirit.LLM/ # 大语言模型集成组件38│ ├── CodeSpirit.Localization/ # 多语言本地化组件39│ ├── CodeSpirit.Messaging/ # 消息队列组件40│ ├── CodeSpirit.MultiTenant/ # 多租户组件41│ ├── CodeSpirit.Navigation/ # 导航组件42│ ├── CodeSpirit.OData/ # OData查询组件43│ ├── CodeSpirit.PartnerSdk/ # 伙伴SDK(AI助手工具SDK)44│ ├── CodeSpirit.PathfinderTools/ # Pathfinder工具库45│ ├── CodeSpirit.PdfGeneration/ # PDF生成组件46│ ├── CodeSpirit.ScheduledTasks/ # 定时任务组件(分布式调度)47│ ├── CodeSpirit.Settings/ # 设置管理组件48│ ├── CodeSpirit.Shared/ # 组件共享库49│ ├── CodeSpirit.UdlCards/ # UDL卡片组件50│ └── CodeSpirit.VectorSearch/ # 向量搜索组件(AI语义搜索)51├── CodeSpirit.AppHost/ # Aspire应用宿主(启动项目)52├── CodeSpirit.Core/ # 核心框架定义53├── CodeSpirit.ServiceDefaults/ # 服务默认配置54├── CodeSpirit.Shared/ # 全局共享库55└── CodeSpirit.Web/ # Web前端项目56```5758## 项目分类说明5960### API服务层 (14个服务)6162**注意**: 项目数量可能随开发进度变化,此处列出当前主要服务。6364#### 核心业务系统65- **IdentityApi**: JWT认证、用户管理、角色权限、部门组织66- **ExamApi**: 题库管理、考试系统、阅卷、统计分析67- **SurveyApi**: 问卷设计、数据收集、统计分析68- **ApprovalApi**: 审批流程、表单流转、工作流引擎6970#### AI 增强系统71- **AiCardsApi**: AI卡片、智能生成72- **PartnerApi**: AI伙伴对话前端73- **DigitalPartner.Plugins.ExamAnalyst**: 考试分析AI插件74- **PathfinderApi**: AI驱动的目标管理系统75- **PathfinderAgent**: Pathfinder智能代理7677#### 基础设施服务78- **ConfigCenter**: 配置中心、动态配置管理79- **FileStorageApi**: 文件存储、引用计数、生命周期管理80- **MessagingApi**: 消息服务、通知推送81- **ContentApi**: 内容管理82- **MallApi**: 商城系统8384### 核心组件库 (多个组件)8586**注意**: 组件数量可能随开发进度变化,此处列出主要组件。8788#### 界面生成89- **Amis**: 零前端代码CRUD界面生成引擎90- **UdlCards**: UDL卡片组件库91- **Navigation**: 智能导航组件9293#### AI 集成94- **LLM**: 大语言模型统一接口(OpenAI、通义千问、DeepSeek)95- **AiFormFill**: AI表单智能填充组件96- **VectorSearch**: 向量搜索、AI语义搜索97- **PartnerSdk**: AI助手工具开发SDK98- **PathfinderTools**: Pathfinder工具库99100#### 权限审计101- **Authorization**: RBAC+ABAC混合权限模型102- **Audit**: 审计追踪组件(含LLM审计)103104#### 多租户105- **MultiTenant**: 多租户数据隔离106- **Localization**: 多语言本地化107108#### 性能优化109- **Caching**: 多级缓存(L1内存+L2Redis)、分布式锁110- **ScheduledTasks**: 分布式定时任务调度111112#### 数据处理113- **Aggregator**: 数据聚合器、字段替换114- **Charts**: 智能图表、可视化115- **OData**: OData查询支持116117#### 基础设施118- **Settings**: 设置管理组件119- **PdfGeneration**: PDF生成服务120- **ConfigCenter.Client**: 配置中心客户端121- **Messaging**: 消息队列、事件总线122- **Shared**: 组件共享库123124## 典型API项目结构125126```127CodeSpirit.ExamApi/128├── Configuration/ # API配置类129│ └── ExamApiConfiguration.cs130├── Controllers/ # API控制器131│ ├── QuestionsController.cs132│ └── ExamsController.cs133├── Data/ # 数据访问层134│ ├── ExamDbContext.cs135│ ├── MySqlExamDbContext.cs136│ ├── SqlServerExamDbContext.cs137│ └── Configurations/ # 实体配置138├── Dtos/ # 数据传输对象139│ ├── Question/140│ │ ├── CreateQuestionDto.cs141│ │ ├── UpdateQuestionDto.cs142│ │ └── QuestionDto.cs143│ └── Exam/144├── Services/ # 业务服务145│ ├── IQuestionService.cs146│ └── QuestionService.cs147├── MappingProfiles/ # AutoMapper配置148├── Resources/ # 多语言资源149│ ├── ExamDisplayResources.cs150│ ├── ExamDisplay.resx151│ └── ExamDisplay.en.resx152├── Migrations/ # 数据库迁移153│ ├── MySql/154│ └── SqlServer/155└── Program.cs # 启动文件(仅2行代码)156```157158## 开发流程159160### 新建 API 服务1611. 创建项目并引用 `CodeSpirit.Shared`1622. 创建 `Configuration/{ApiName}Configuration.cs` 继承 `BaseApiConfiguration`1633. `Program.cs` 中使用统一启动框架(2行代码)1644. 创建 DbContext、实体、配置1655. 创建迁移(MySql 和 SqlServer)166167### 开发 CRUD 功能1681. 定义实体(Entity)1692. 创建 DTO(Create/Update/Query/List)1703. 实现服务(Service)继承 `BaseCRUDService`1714. 创建控制器(Controller)继承 `ApiControllerBase`1725. 添加 AutoMapper 配置1736. 前端自动生成(零前端代码)174175### 添加多语言1761. 在 `Resources/` 创建资源文件1772. DTO 使用 `[Display(ResourceType = typeof(...))]`1783. 验证使用 `ErrorMessageResourceType`1794. 异常使用资源键 `throw new BusinessException("Errors.NotFound")`180181## 技术栈对应182183| 功能 | 技术选型 | 对应组件 |184|------|---------|---------|185| API开发 | .NET 10 + Aspire | ServiceDefaults, Core |186| 数据访问 | EF Core 9 | Shared (BaseCRUDService) |187| 数据库 | MySQL/SQL Server | 多数据库迁移支持 |188| 缓存 | Redis | Caching 组件 |189| 消息队列 | RabbitMQ | Messaging 组件 |190| 权限 | RBAC+ABAC | Authorization 组件 |191| 审计 | Elasticsearch/GreptimeDB | Audit 组件 |192| 多租户 | 数据隔离 | MultiTenant 组件 |193| 多语言 | Resx资源文件 | Localization 组件 |194| 前端生成 | AMIS | Amis 组件 |195| AI集成 | OpenAI/通义千问/DeepSeek | LLM, AiFormFill 组件 |196| 定时任务 | 分布式调度 | ScheduledTasks 组件 |197198## 参考文档199200详细的开发指南请参考:201- [命名约定规范](mdc:.cursor/rules/naming-conventions.mdc)202- [API设计规范](mdc:.cursor/rules/api-design.mdc)203- [统一启动框架](mdc:.cursor/rules/startup-framework.mdc)204- [依赖注入规范](mdc:.cursor/rules/dependency-injection.mdc)205
Also in xin-lai/CodeSpirit
Diff this repo’s formatsOne repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| xin-lai/CodeSpirit.cursor/rules/js.mdc · 56 | Cursor rules | apidocs | 46/100 | 3 days ago | |
| xin-lai/CodeSpirit.cursor/rules/ai-development.mdc · 56 | Cursor rules | api | 46/100 | 3 days ago | |
| xin-lai/CodeSpirit.cursor/rules/all.mdc · 56 | Cursor rules | testing-strategyapi | 50/100 | 3 days ago | |
| xin-lai/CodeSpirit.cursor/rules/amis-cards.mdc · 56 | Cursor rules | no sections | 54/100 | 3 days ago | |
| xin-lai/CodeSpirit.cursor/rules/api-design.mdc · 56 | Cursor rules | no sections | 54/100 | 3 days ago | |
| xin-lai/CodeSpirit.cursor/rules/controller.mdc · 56 | Cursor rules | api | 54/100 | 3 days ago | |
| xin-lai/CodeSpirit.cursor/rules/cs.mdc · 56 | Cursor rules | no sections | 25/100 | 3 days ago | |
| xin-lai/CodeSpirit.cursor/rules/csproj.mdc · 56 | Cursor rules | api | 54/100 | 3 days ago | |
| xin-lai/CodeSpirit.cursor/rules/css.mdc · 56 | Cursor rules | ui | 54/100 | 3 days ago | |
| xin-lai/CodeSpirit.cursor/rules/database.mdc · 56 | Cursor rules | no sections | 74/100 | 3 days ago | |
| xin-lai/CodeSpirit.cursor/rules/dependency-injection.mdc · 56 | Cursor rules | api | 54/100 | 3 days ago | |
| xin-lai/CodeSpirit.cursor/rules/dto.mdc · 56 | Cursor rules | no sections | 50/100 | 3 days ago | |
| xin-lai/CodeSpirit.cursor/rules/enum.mdc · 56 | Cursor rules | no sections | 50/100 | 3 days ago | |
| xin-lai/CodeSpirit.cursor/rules/i18n.mdc · 56 | Cursor rules | no sections | 50/100 | 3 days ago | |
| xin-lai/CodeSpirit.cursor/rules/naming-conventions.mdc · 56 | Cursor rules | no sections | 50/100 | 3 days ago | |
| xin-lai/CodeSpirit.cursor/rules/package-management.mdc · 56 | Cursor rules | no sections | 74/100 | 3 days ago | |
| xin-lai/CodeSpirit.cursor/rules/performance.mdc · 56 | Cursor rules | no sections | 54/100 | 3 days ago | |
| xin-lai/CodeSpirit.cursor/rules/security.mdc · 56 | Cursor rules | database | 54/100 | 3 days ago | |
| xin-lai/CodeSpirit.cursor/rules/service.mdc · 56 | Cursor rules | no sections | 50/100 | 3 days ago | |
| xin-lai/CodeSpirit.cursor/rules/startup-framework.mdc · 56 | Cursor rules | api | 54/100 | 3 days ago |
Diff against .cursor/rules/js.mdc Diff against .cursor/rules/ai-development.mdc Diff against .cursor/rules/all.mdc Diff against .cursor/rules/amis-cards.mdc Diff against .cursor/rules/api-design.mdc Diff against .cursor/rules/controller.mdc Diff against .cursor/rules/cs.mdc Diff against .cursor/rules/csproj.mdc Diff against .cursor/rules/css.mdc Diff against .cursor/rules/database.mdc Diff against .cursor/rules/dependency-injection.mdc Diff against .cursor/rules/dto.mdc Diff against .cursor/rules/enum.mdc Diff against .cursor/rules/i18n.mdc Diff against .cursor/rules/naming-conventions.mdc Diff against .cursor/rules/package-management.mdc Diff against .cursor/rules/performance.mdc Diff against .cursor/rules/security.mdc Diff against .cursor/rules/service.mdc Diff against .cursor/rules/startup-framework.mdc
Similar configs
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| hiromaily/go-crypto-wallet.cursor/rules/typescript.mdc · 126 | Cursor rules | setupbuildtestlint-format+6 | 100/100 | 3 days ago | |
| TechSquidTV/Hermes.cursor/rules/10-hermes-api.mdc · 45 | Cursor rules | testlint-formatstylearch+5 | 100/100 | 3 days ago | |
| markstev/mark-starter.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+6 | 99/100 | 3 days ago | |
| Allymahmoud/case-intake-platform.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 3 days ago | |
| deifos/clipmira-subtitles.cursor/rules/frontend.mdc · 1 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 3 days ago | |
| dodgecfr/combatfilms-webapp.cursor/rules/frontend.mdc · 0 | Cursor rules | setuptestlint-formatstyle+7 | 99/100 | 3 days ago | |
| langflow-ai/langflow.cursor/rules/docs_development.mdc · 153k | Cursor rules | setupbuildtestlint-format+7 | 97/100 | 3 days ago | |
| TechSquidTV/Hermes.cursor/rules/20-hermes-api-tests.mdc · 45 | Cursor rules | teststyletesting-strategysecurity+3 | 97/100 | 3 days ago |
