# thinkgem/jeesite5 architecture

> Architecture diagram of the GitHub repository thinkgem/jeesite5, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/thinkgem/jeesite5
- Repository: https://github.com/thinkgem/jeesite5

## Overview

JeeSite is an enterprise low-code platform whose runtime combines system administration, content management, messaging, file handling, and AI capabilities. A representative user workflow is an administrator managing an article, submitting it for optional review, and publishing it for public viewing; the platform also offers RAG-based CMS chat and local or MCP tool calling. The graph reflects README-documented capabilities where the tree identifies their subsystem, but detailed wiring for unsampled modules is intentionally omitted.

Main entry points: [`modules/cms/src/main/java/com/jeesite/modules/cms/service/CmsArticleService.java`](https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/cms/src/main/java/com/jeesite/modules/cms/service/CmsArticleService.java) (Article service), [`modules/ai/ai-cms/src/main/java/com/jeesite/modules/ai/cms/service/AiCmsChatService.java`](https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/ai/ai-cms/src/main/java/com/jeesite/modules/ai/cms/service/AiCmsChatService.java) (RAG chat service), [`modules/core/src/main/java/com/jeesite/modules/sys/web/AccountController.java`](https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/core/src/main/java/com/jeesite/modules/sys/web/AccountController.java) (System controllers), [`modules/core/src/main/java/com/jeesite/modules/sys/service/EmpUserService.java`](https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/core/src/main/java/com/jeesite/modules/sys/service/EmpUserService.java) (Users and organization)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_platform["Platform access"]
  node_sysweb["System controllers"]
  node_auth["Shiro authentication"]
  node_org["Users and organization"]
end

subgraph group_content["Content management"]
  node_cmsadmin["CMS controllers"]
  node_article["Article service"]
  node_review["Article review"]
  node_template["Template service"]
  node_front["Public CMS pages"]
  node_index["Search and vectors"]
end

subgraph group_ai["AI services"]
  node_chatweb["AI chat endpoint"]
  node_chat["RAG chat service"]
  node_tools["AI tool adapters<br/>[UserAiTools.java]"]
end

subgraph group_business["Business modules"]
  node_app["App feedback"]
  node_biz["Business categories"]
end

subgraph group_shared["Shared services"]
  node_messages["Internal messaging"]
  node_email["Email delivery"]
  node_files["File uploads"]
  node_storage["File storage"]
end

node_admin(("Administrator"))
node_public(("Public reader"))
node_database[("Application database")]
node_model{{"AI model provider"}}
node_mcp{{"MCP service"}}

node_admin -->|"administers"| node_sysweb
node_sysweb -->|"authenticates"| node_auth
node_sysweb -->|"manages users"| node_org
node_org -->|"persists"| node_database
node_admin -->|"edits articles"| node_cmsadmin
node_cmsadmin -->|"delegates"| node_article
node_article -->|"submits for review"| node_review
node_article -->|"stores content"| node_database
node_article -->|"updates index"| node_index
node_admin -->|"edits templates"| node_template
node_public -->|"views content"| node_front
node_front -->|"retrieves articles"| node_article
node_public -->|"starts chat"| node_chatweb
node_chatweb -->|"dispatches"| node_chat
node_chat -->|"requests response"| node_model
node_chat -->|"retrieves context"| node_index
node_chat -.->|"invokes tools"| node_tools
node_tools -.->|"calls MCP tools"| node_mcp
node_admin -->|"manages messages"| node_messages
node_messages -.->|"sends email"| node_email
node_admin -->|"uploads files"| node_files
node_files -->|"stores upload"| node_storage
node_storage -.->|"records metadata"| node_database
node_admin -->|"handles feedback"| node_app
node_admin -->|"manages categories"| node_biz

click node_sysweb "https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/core/src/main/java/com/jeesite/modules/sys/web/AccountController.java"
click node_auth "https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/core/src/main/java/com/jeesite/common/shiro/realm/AuthorizingRealm.java"
click node_org "https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/core/src/main/java/com/jeesite/modules/sys/service/EmpUserService.java"
click node_cmsadmin "https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/cms/src/main/java/com/jeesite/modules/cms/web/CmsArticleController.java"
click node_article "https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/cms/src/main/java/com/jeesite/modules/cms/service/CmsArticleService.java"
click node_review "https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/cms/src/main/java/com/jeesite/modules/cms/service/extend/CmsArticleAuthService.java"
click node_template "https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/cms/src/main/java/com/jeesite/modules/cms/service/CmsTemplateService.java"
click node_front "https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/cms/src/main/java/com/jeesite/modules/cmsfront/web/FrontViewController.java"
click node_index "https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/cms/src/main/java/com/jeesite/modules/cms/service/extend/CmsArticleIndexService.java"
click node_chatweb "https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/ai/ai-cms/src/main/java/com/jeesite/modules/ai/cms/web/CmsAiChatController.java"
click node_chat "https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/ai/ai-cms/src/main/java/com/jeesite/modules/ai/cms/service/AiCmsChatService.java"
click node_tools "https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/ai/ai-tools/src/main/java/com/jeesite/modules/ai/tools/impl/UserAiTools.java"
click node_messages "https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/core/src/main/java/com/jeesite/modules/msg/service/MsgInnerService.java"
click node_email "https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/core/src/main/java/com/jeesite/modules/msg/send/EmailSendService.java"
click node_files "https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/core/src/main/java/com/jeesite/modules/file/web/FileUploadController.java"
click node_storage "https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/core/src/main/java/com/jeesite/common/ueditor/upload/StorageManager.java"
click node_app "https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/app/src/main/java/com/jeesite/modules/app/service/AppCommentService.java"
click node_biz "https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/core/src/main/java/com/jeesite/modules/biz/service/BizCategoryService.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_sysweb,node_auth,node_org toneBlue
class node_cmsadmin,node_article,node_review,node_template,node_front,node_index,node_database toneAmber
class node_chatweb,node_chat,node_tools toneMint
class node_app,node_biz toneRose
class node_messages,node_email,node_files,node_storage,node_admin,node_public,node_model,node_mcp toneIndigo
```

## Components

### Platform access

- [System controllers](https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/core/src/main/java/com/jeesite/modules/sys/web/AccountController.java): `modules/core/src/main/java/com/jeesite/modules/sys/web/AccountController.java`
- [Shiro authentication](https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/core/src/main/java/com/jeesite/common/shiro/realm/AuthorizingRealm.java): `modules/core/src/main/java/com/jeesite/common/shiro/realm/AuthorizingRealm.java`
- [Users and organization](https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/core/src/main/java/com/jeesite/modules/sys/service/EmpUserService.java): `modules/core/src/main/java/com/jeesite/modules/sys/service/EmpUserService.java`

### Content management

- [CMS controllers](https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/cms/src/main/java/com/jeesite/modules/cms/web/CmsArticleController.java): `modules/cms/src/main/java/com/jeesite/modules/cms/web/CmsArticleController.java`
- [Article service](https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/cms/src/main/java/com/jeesite/modules/cms/service/CmsArticleService.java): `modules/cms/src/main/java/com/jeesite/modules/cms/service/CmsArticleService.java`
- [Article review](https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/cms/src/main/java/com/jeesite/modules/cms/service/extend/CmsArticleAuthService.java): `modules/cms/src/main/java/com/jeesite/modules/cms/service/extend/CmsArticleAuthService.java`
- [Template service](https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/cms/src/main/java/com/jeesite/modules/cms/service/CmsTemplateService.java): `modules/cms/src/main/java/com/jeesite/modules/cms/service/CmsTemplateService.java`
- [Public CMS pages](https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/cms/src/main/java/com/jeesite/modules/cmsfront/web/FrontViewController.java): `modules/cms/src/main/java/com/jeesite/modules/cmsfront/web/FrontViewController.java`
- [Search and vectors](https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/cms/src/main/java/com/jeesite/modules/cms/service/extend/CmsArticleIndexService.java): `modules/cms/src/main/java/com/jeesite/modules/cms/service/extend/CmsArticleIndexService.java`

### AI services

- [AI chat endpoint](https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/ai/ai-cms/src/main/java/com/jeesite/modules/ai/cms/web/CmsAiChatController.java): `modules/ai/ai-cms/src/main/java/com/jeesite/modules/ai/cms/web/CmsAiChatController.java`
- [RAG chat service](https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/ai/ai-cms/src/main/java/com/jeesite/modules/ai/cms/service/AiCmsChatService.java): `modules/ai/ai-cms/src/main/java/com/jeesite/modules/ai/cms/service/AiCmsChatService.java`
- [AI tool adapters](https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/ai/ai-tools/src/main/java/com/jeesite/modules/ai/tools/impl/UserAiTools.java): `modules/ai/ai-tools/src/main/java/com/jeesite/modules/ai/tools/impl/UserAiTools.java`

### Business modules

- [App feedback](https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/app/src/main/java/com/jeesite/modules/app/service/AppCommentService.java): `modules/app/src/main/java/com/jeesite/modules/app/service/AppCommentService.java`
- [Business categories](https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/core/src/main/java/com/jeesite/modules/biz/service/BizCategoryService.java): `modules/core/src/main/java/com/jeesite/modules/biz/service/BizCategoryService.java`

### Shared services

- [Internal messaging](https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/core/src/main/java/com/jeesite/modules/msg/service/MsgInnerService.java): `modules/core/src/main/java/com/jeesite/modules/msg/service/MsgInnerService.java`
- [Email delivery](https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/core/src/main/java/com/jeesite/modules/msg/send/EmailSendService.java): `modules/core/src/main/java/com/jeesite/modules/msg/send/EmailSendService.java`
- [File uploads](https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/core/src/main/java/com/jeesite/modules/file/web/FileUploadController.java): `modules/core/src/main/java/com/jeesite/modules/file/web/FileUploadController.java`
- [File storage](https://github.com/thinkgem/jeesite5/blob/v5.springboot4/modules/core/src/main/java/com/jeesite/common/ueditor/upload/StorageManager.java): `modules/core/src/main/java/com/jeesite/common/ueditor/upload/StorageManager.java`

### Other components

- **Administrator**
- **Public reader**
- **Application database**
- **AI model provider**
- **MCP service**

## Connections

- Administrator → System controllers: administers
- System controllers → Shiro authentication: authenticates
- System controllers → Users and organization: manages users
- Users and organization → Application database: persists
- Administrator → CMS controllers: edits articles
- CMS controllers → Article service: delegates
- Article service → Article review: submits for review
- Article service → Application database: stores content
- Article service → Search and vectors: updates index
- Administrator → Template service: edits templates
- Public reader → Public CMS pages: views content
- Public CMS pages → Article service: retrieves articles
- Public reader → AI chat endpoint: starts chat
- AI chat endpoint → RAG chat service: dispatches
- RAG chat service → AI model provider: requests response
- RAG chat service → Search and vectors: retrieves context
- RAG chat service → AI tool adapters: invokes tools
- AI tool adapters → MCP service: calls MCP tools
- Administrator → Internal messaging: manages messages
- Internal messaging → Email delivery: sends email
- Administrator → File uploads: uploads files
- File uploads → File storage: stores upload
- File storage → Application database: records metadata
- Administrator → App feedback: handles feedback
- Administrator → Business categories: manages categories
