Repository: robustmq/robustmq (language: rust)

Issue:
chore: Improve developer documentation and related content
### What type of enhancement is this?

Other

### What does the enhancement do?

1.Imporve developer documentation for helping user to know how to build vitepress and how to write document.
2.Imporve Using Issue Progression, then user can know how to create a issue correctly.

### Implementation challenges

No.


Discussion / hints:

Fix patch:
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index 88b9e4078..513bc0157 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -14,9 +14,21 @@
 
 ---
 name: Bug report
+title: "[BUG]"
 description: Is something not working? Help us fix it!
-labels: [ "bug" ]
+labels: [ "kind:bug" ]
 body:
+  - type: checkboxes
+    attributes:
+      label: Have you checked the documentation for submitting an Issue?
+      description: >
+        We would appreciate it if you could first check [Contribution Guide](https://robustmq.com/ContributionGuide/GitHub-Contribution-Guide.html),
+        as this will help us quickly categorize the Issue.
+        RobustMQ is a community-driven project and we love to bring new contributors in.
+      options:
+        - label: Yes.
+          required: true
+
   - type: markdown
     attributes:
       value: |
@@ -58,10 +70,9 @@ body:
     id: reproduce
     attributes:
       label: Minimal reproduce step
-      description: |
-        Please walk us through and provide steps and details on how
-        to reproduce the issue. If possible, provide scripts that we
-        can run to trigger the bug.
+      description: >
+        Please walk us through and provide steps and details on how to reproduce the issue.
+        If possible, provide scripts that we can run to trigger the bug.
     validations:
       required: true
 
@@ -83,10 +94,9 @@ body:
     id: os
     attributes:
       label: What operating system did you use?
-      description: |
-        Please provide OS, version, and architecture. For example:
-        Windows 10 x64, Ubuntu 21.04 x64, Mac OS X 10.5 ARM, Rasperry
-        Pi i386, etc.
+      description: >
+        Please provide OS, version, and architecture. For example: Windows 10 x64, Ubuntu 21.04 x64, Mac OS X 10.5 ARM,
+        Raspberry Pi i386, etc.
       placeholder: "Ubuntu 21.04 x64"
     validations:
       required: true
@@ -95,8 +105,18 @@ body:
     id: logs
     attributes:
       label: Relevant log output and stack trace
-      description: |
-        Please copy and paste any relevant log output or a stack
-        trace. This will be automatically formatted into code, so no
-        need for backticks.
+      description: >
+        Please copy and paste any relevant log output or a stack trace.
+        This will be automatically formatted into code, so no need for backticks.
       render: bash
+
+  - type: checkboxes
+    attributes:
+      label: Are you willing to submit PR?
+      description: >
+        A pull request is optional, but we are glad to help you in the contribution process
+        especially if you already know a good understanding of how to implement the fix.
+        RobustMQ is a community-driven project and we love to bring new contributors in.
+      options:
+        - label: Yes. I would be willing to submit a PR with guidance from the RobustMQ community to improve.
+        - label: No. I cannot submit a PR at this time.
diff --git a/.github/ISSUE_TEMPLATE/enhancement.yml b/.github/ISSUE_TEMPLATE/enhancement.yml
index 31903cbb0..fb0511284 100644
--- a/.github/ISSUE_TEMPLATE/enhancement.yml
+++ b/.github/ISSUE_TEMPLATE/enhancement.yml
@@ -14,22 +14,35 @@
 
 ---
 name: Enhancement
+title: "[Style/Refactor/Performance/Doc/Test/Build/CI/Chore]"
 description: Suggest an enhancement to existing functionality
 labels: [ "enhancement" ]
 body:
+  - type: checkboxes
+    attributes:
+      label: Have you checked the documentation for submitting an Issue?
+      description: >
+        We would appreciate it if you could first check [Contribution Guide](https://robustmq.com/ContributionGuide/GitHub-Contribution-Guide.html),
+        as this will help us quickly categorize the Issue.
+        RobustMQ is a community-driven project and we love to bring new contributors in.
+      options:
+        - label: Yes.
+          required: true
+
   - type: dropdown
     id: type
     attributes:
       label: What type of enhancement is this?
       multiple: true
       options:
-        - API improvement
-        - Configuration
-        - Performance
+        - Style
         - Refactor
-        - Tech debt reduction
-        - User experience
-        - Other
+        - Performance
+        - Doc
+        - Test
+        - Build
+        - CI
+        - Chore
     validations:
       required: true
 
@@ -51,3 +64,14 @@ body:
         Share any ideas of how to implement the enhancement.
     validations:
       required: false
+
+  - type: checkboxes
+    attributes:
+      label: Are you willing to submit PR?
+      description: >
+        A pull request is optional, but we are glad to help you in the contribution process
+        especially if you already know a good understanding of how to implement the feature.
+        RobustMQ is a community-driven project and we love to bring new contributors in.
+      options:
+        - label: Yes. I would be willing to submit a PR with guidance from the RobustMQ community to improve.
+        - label: No. I cannot submit a PR at this time.
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
index b191fad00..a1a172a8c 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.yml
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -14,11 +14,22 @@
 
 ---
 name: Feature request
+title: "[Feat]"
 description: Suggest a new feature for RobustMQ
 labels: [ "feature request" ]
 body:
+  - type: checkboxes
+    attributes:
+      label: Have you checked the documentation for submitting an Issue?
+      description: >
+        We would appreciate it if you could first check [Contribution Guide](https://robustmq.com/ContributionGuide/GitHub-Contribution-Guide.html),
+        as this will help us quickly categorize the Issue.
+        RobustMQ is a community-driven project and we love to bring new contributors in.
+      options:
+        - label: Yes.
+          required: true
+
   - type: markdown
-    id: info
     attributes:
       value: |
         Only use this template to suggest a new feature that doesn't already exist in RobustMQ.
@@ -29,7 +40,7 @@ body:
     id: what
     attributes:
       label: What problem does the new feature solve?
-      description: |
+      description: >
         Describe the problem and why it is important to solve. Did you consider alternative
         solutions, perhaps outside the database? Why is it better to add the feature to
         RobustMQ?
@@ -40,7 +51,7 @@ body:
     id: how
     attributes:
       label: What does the feature do?
-      description: |
+      description: >
         Give a high-level overview of what the feature does and how it would work.
     validations:
      required: true
@@ -49,8 +60,19 @@ body:
     id: implementation
     attributes:
       label: Implementation challenges
-      description: |
+      description: >
         If you have ideas of how to implement the feature, and any particularly
         challenging issues to overcome, then provide them here.
     validations:
       required: false
+
+  - type: checkboxes
+    attributes:
+      label: Are you willing to submit PR?
+      description: >
+        A pull request is optional, but we are glad to help you in the contribution process
+        especially if you already know a good understanding of how to implement the feature.
+        RobustMQ is a community-driven project and we love to bring new contributors in.
+      options:
+        - label: Yes. I would be willing to submit a PR with guidance from the RobustMQ community to improve.
+        - label: No. I cannot submit a PR at this time.
diff --git a/.github/ISSUE_TEMPLATE/subtask.yml b/.github/ISSUE_TEMPLATE/subtask.yml
new file mode 100644
index 000000000..7057676b8
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/subtask.yml
@@ -0,0 +1,69 @@
+# Copyright 2023 RobustMQ Team
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+name: Subtask
+title: "[RPIP-*/MINOR][Style/Refactor/Performance/Docs/Test/Build/CI/Chore][Subtask]"
+description: A subtask issue
+body:
+  - type: checkboxes
+    attributes:
+      label: Have you checked the documentation for submitting an Issue?
+      description: >
+        We would appreciate it if you could first check [Contribution Guide](https://robustmq.com/ContributionGuide/GitHub-Contribution-Guide.html),
+        as this will help us quickly categorize the Issue.
+        RobustMQ is a community-driven project and we love to bring new contributors in.
+      options:
+        - label: Yes.
+          required: true
+
+  - type: checkboxes
+    attributes:
+      label: Search before asking
+      options:
+        - label: >
+            I have searched in the [issues](https://github.com/robustmq/robustmq/issues) and found no similar
+            issues.
+          required: true
+
+  - type: textarea
+    attributes:
+      label: Describe the subtask
+      placeholder: >
+        Please describe the content of the subtask clearly and concisely.
+    validations:
+      required: true
+
+  - type: textarea
+    attributes:
+      label: Parent issue
+      placeholder: >
+        Please put the parent issue link here.
+    validations:
+      required: true
+
+  - type: checkboxes
+    attributes:
+      label: Are you willing to submit PR?
+      description: >
+        A pull request is optional, but we are glad to help you in the contribution process
+        especially if you already have a grip on how to implement the new feature.
+        RobustMQ is a community-driven project and we love to bring new contributors in.
+      options:
+        - label: Yes. I would be willing to submit a PR with guidance from the RobustMQ community to improve.
+        - label: No. I cannot submit a PR at this time.
+
+  - type: markdown
+    attributes:
+      value: "Thanks for taking the time to propose an subtask issue!"
diff --git a/.github/ISSUE_TEMPLATE/umbrella.yml b/.github/ISSUE_TEMPLATE/umbrella.yml
new file mode 100644
index 000000000..ebd80c961
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/umbrella.yml
@@ -0,0 +1,68 @@
+# Copyright 2023 RobustMQ Team
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+---
+name: Umbrella
+title: "[RPIP-*/MINOR]"
+description: An umbrella issue with multiple sub-tasks
+body:
+  - type: checkboxes
+    attributes:
+      label: Have you checked the documentation for submitting an Issue?
+      description: >
+        We would appreciate it if you could first check [Contribution Guide](https://robustmq.com/ContributionGuide/GitHub-Contribution-Guide.html),
+        as this will help us quickly categorize the Issue.
+        RobustMQ is a community-driven project and we love to bring new contributors in.
+      options:
+        - label: Yes.
+          required: true
+
+  - type: textarea
+    attributes:
+      label: Describe the proposal
+      placeholder: >
+        Please describe the content of the proposal clearly and concisely.
+    validations:
+      required: true
+
+  - type: textarea
+    attributes:
+      label: Task list
+      description: >
+        For more details, please refer to [github docs](https://docs.github.com/en/issues/tracking-your-work-with-issues/about-task-lists).
+        placeholder: >
+        Please create sub-tasks with the pre-create issues here and @ the assignees if you know any of them. A simple example is as follows:
+          - [ ] #1
+            - [ ] #11 @user1
+            - [ ] #12
+            - [ ] #13
+          - [ ] #2 @user2
+          - [ ] #3
+    validations:
+      required: true
+
+  - type: checkboxes
+    attributes:
+      label: Are you willing to submit PR?
+      description: >
+        A pull request is optional, but we are glad to help you in the contribution process
+        especially if you already have a grip on how to implement the new feature.
+        RobustMQ is a community-driven project and we love to bring new contributors in.
+      options:
+        - label: Yes. I would be willing to submit a PR with guidance from the RobustMQ community to improve.
+        - label: No. I cannot submit a PR at this time.
+
+  - type: markdown
+    attributes:
+      value: "Thanks for taking the time to propose an umbrella issue!"
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
index f552b856e..1c5e8b5c9 100644
--- a/.github/pull_request_template.md
+++ b/.github/pull_request_template.md
@@ -15,4 +15,8 @@ Please explain IN DETAIL what the changes are in this PR and why they are needed
 - [ ]  I have added the necessary unit tests and integration tests.
 - [ ]  This PR does not require documentation updates.
 
-## Refer to a related PR or issue link (optional)
+## Refer to a related PR or issue link
+Please associate a related Issue, which can help reviewers better understand your intent.
+You can refer to the [GitHub Contribution Guide](https://robustmq.com/ContributionGuide/GitHub-Contribution-Guide.html)
+to submit the corresponding Issue.It also has an [PR Example](https://robustmq.com/ContributionGuide/Pull-Request-Example.html) to
+help you submit PR.
diff --git a/docs/.DS_Store b/docs/.DS_Store
index 7e22ae299..c1fa05cda 100644
Binary files a/docs/.DS_Store and b/docs/.DS_Store differ
diff --git a/docs/.vitepress/src/sidebars/en.mts b/docs/.vitepress/src/sidebars/en.mts
index 01cbf865b..685067eac 100644
--- a/docs/.vitepress/src/sidebars/en.mts
+++ b/docs/.vitepress/src/sidebars/en.mts
@@ -50,12 +50,26 @@ export const sidebar = [
         text: "ContributionGuide",
         collapsed: true,
         items: [
-            {text: "Build Env", link: "/ContributionGuide/Build-Develop-Env"},
-            {text: "Cargo", link: "/ContributionGuide/Cargo-Running"},
-            {text: "VsCode", link: "/ContributionGuide/VsCode-Running"},
-            {text: "Code Structure", link: "/ContributionGuide/Code-Structure"},
             {text: "Contribution Guide", link: "/ContributionGuide/GitHub-Contribution-Guide"},
             {text: "PR Example", link: "/ContributionGuide/Pull-Request-Example"},
+            {
+                text: "ContributingCode",
+                collapsed: true,
+                items: [
+                    {text: "Build Develop Env", link: "/ContributionGuide/ContributingCode/Build-Develop-Env"},
+                    {text: "Cargo Running", link: "/ContributionGuide/ContributingCode/Cargo-Running"},
+                    {text: "VsCode Running", link: "/ContributionGuide/ContributingCode/VsCode-Running"},
+                    {text: "Code Structure", link: "/ContributionGuide/ContributingCode/Code-Structure"},
+                ],
+            },
+            {
+                text: "ContributingDoc",
+                collapsed: true,
+                items: [
+                    {text: "Build Doc Env", link: "/ContributionGuide/ContributingDoc/Build-Doc-Env"},
+                    {text: "Doc Contribution Guide", link: "/ContributionGuide/ContributingDoc/Doc-Contribution-Guide"},
+                ],
+            }
         ],
     },
     {
@@ -68,8 +82,6 @@ export const sidebar = [
     {
         text: "Other Data",
         collapsed: true,
-        items: [
-            {text: "RobustMQ Rust China For 2024", link: "/OtherData/RobustMQ-Rust-China-For-2024"},
-        ],
+        items: [],
     },
 ];
diff --git a/docs/.vitepress/src/sidebars/zh.mts b/docs/.vitepress/src/sidebars/zh.mts
index 1adbb9d45..83918af8d 100644
--- a/docs/.vitepress/src/sidebars/zh.mts
+++ b/docs/.vitepress/src/sidebars/zh.mts
@@ -50,12 +50,26 @@ export const sidebar = [
         text: "贡献指南",
         collapsed: true,
         items: [
-            {text: "环境搭建", link: "/zh/ContributionGuide/Build-Develop-Env"},
-            {text: "Cargo运行", link: "/zh/ContributionGuide/Cargo-Running"},
-            {text: "VsCode 运行", link: "/zh/ContributionGuide/VsCode-Running"},
-            {text: "代码结构", link: "/zh/ContributionGuide/Code-Structure"},
             {text: "GitHub 贡献指南", link: "/zh/ContributionGuide/GitHub-Contribution-Guide"},
             {text: "PR 提交示例", link: "/zh/ContributionGuide/Pull-Request-Example"},
+            {
+                text: "代码贡献",
+                collapsed: true,
+                items: [
+                    {text: "环境搭建", link: "/zh/ContributionGuide/ContributingCode/Build-Develop-Env"},
+                    {text: "Cargo运行", link: "/zh/ContributionGuide/ContributingCode/Cargo-Running"},
+                    {text: "VsCode 运行", link: "/zh/ContributionGuide/ContributingCode/VsCode-Running"},
+                    {text: "代码结构", link: "/zh/ContributionGuide/ContributingCode/Code-Structure"},
+                ]
+            },
+            {
+                text: "文档贡献",
+                collapsed: true,
+                items: [
+                    {text: "环境搭建", link: "/zh/ContributionGuide/ContributingDoc/Build-Doc-Env"},
+                    {text: "文档贡献指导", link: "/zh/ContributionGuide/ContributingDoc/Doc-Contribution-Guide"},
+                ]
+            }
         ],
     },
     {
@@ -69,7 +83,7 @@ export const sidebar = [
         text: "相关资料",
         collapsed: true,
         items: [
-            {text: "RobustMQ Rust China For 2024", link: "/zh/OtherData/RobustMQ-Rust-China-For-2024"},
+
         ],
     },
 ];
diff --git a/docs/en/ContributionGuide/Build-Develop-Env.md b/docs/en/ContributionGuide/Build-Develop-Env.md
deleted file mode 100644
index 8a3590ea5..000000000
--- a/docs/en/ContributionGuide/Build-Develop-Env.md
+++ /dev/null
@@ -1,74 +0,0 @@
-# Setting Up the Basic Development Environment
-## Build in Mac
-### Overview
-> ⚠️Note: The current project already includes a `rust-toolchain.toml` file,
-> which means it will use the Rust environment configured in this file by default. If Rust is installed via Homebrew,
-> there may be issues with version overrides, and it will be necessary to uninstall it and rebuild the environment according to these instructions.
-
-To run the code, you first need to set up the Rust development environment. After initializing the Rust environment, the project mainly depends on cmake, rocksdb,
-protoc, and you need to install these dependencies based on your operating system environment.
-
-- Installing Rust Basic Environment
-  Refer to the documentation: [Installing Rust Environment - Rust Language Bible (Rust Course)](https://course.rs/first-try/installation.html)
-
-- Rust Version
-  The Rust version currently depended on is: nightly-2024-11-08
-  ```shell
-  rustup install nightly-2024-11-08
-  rustup default nightly-2024-11-08
-  rustc --version
-  ```
-
-- Installing Cmake.
-  The installation command for Mac is as follows:
-  ```shell
-  brew install cmake
-  ```
-
-- Installing RocksDB
-  Refer to the documentation: [GitHub - rust-rocksdb/rust-rocksdb: rust wrapper for rocksdb](https://github.com/rust-rocksdb/rust-rocksdb) to install rocksdb.
-  The installation command for Mac is as follows:
-  ```shell
-  brew install rocksdb
-  ```
-
-- Installing protoc
-  Refer to the documentation: [mac installation of proto and simple compilation to dart files](https://www.jianshu.com/p/341293ee1286) to install protoc.
-  The installation command for Mac is as follows:
-  ```shell
-  brew install protobuf
-  ```
-
-### Developing pre-commit Plugins
-
-RobustMQ uses `pre-commit` for pre-submission code checks by default, so you need to install a specific version of the `pre-commit` tool.
-
-First, you need to create a virtual environment using `Python` (version 3.8 or above), and the installation command is as follows:
-```shell
-python3 -m venv precommit_venv
-```
-
-After installation, enter the virtual environment with the following command:
-```shell
-source ./precommit_venv/bin/activate
-```
-
-Then, install the corresponding version of the `pre-commit` tool, here using the version of `pre-commit` specified in the project environment:
-```shell
-pip3 install -r ./.requirements-precommit.txt
-```
-
-After the installation is complete, you need to initialize the `pre-commit` hooks for the project content with the following command:
-```shell
-pre-commit install
-```
-
-> ⚠️Note: Subsequent `git commit` operations will execute the corresponding checks with `pre-commit`. If you do not want to check every time you commit, you can skip the check using `git commit -n`.
-
-The `pre-commit` checks use tools such as next-test, hawkeye, clippy, typos, cargo-deny, etc. If these tools are missing, you can refer to the following commands for installation:
-```shell
-cargo install hawkeye@5.8.1
-cargo install typos-cli
-cargo install cargo-deny@0.16.2 --locked
-cargo install cargo-nextest@0.9.84
-```
diff --git a/docs/en/ContributionGuide/Cargo-Running.md b/docs/en/ContributionGuide/Cargo-Running.md
deleted file mode 100644
index 8ec68b7be..000000000
--- a/docs/en/ContributionGuide/Cargo-Running.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Cargo Running
-## Overview
-1. Run standalone by placement - center
-```
-cargo run --package cmd --bin placement - center -- --conf=config/placement - center.toml
-```
-The following information will be output, indicating that the placement - center has been successfully started:
-![image](../../images/doc - image6.png)
-
-2. Run standalone by mqtt - server
-```
-cargo run --package cmd --bin mqtt - server -- --conf=config/mqtt - server.toml
-```
-The following information will be output, indicating that the mqtt - server has been successfully started:
-![image](../../images/doc - image7.png)
diff --git a/docs/en/ContributionGuide/Code-Structure.md b/docs/en/ContributionGuide/Code-Structure.md
deleted file mode 100644
index a496d99a1..000000000
--- a/docs/en/ContributionGuide/Code-Structure.md
+++ /dev/null
@@ -1,88 +0,0 @@
-# Code Structure
-## Root Directory
-
-Mainly focus on the following files and directories: bin, config, docs, makefile, scripts, src, and tests.
-```
-├── Cargo.lock
-├── Cargo.toml
-├── LICENSE
-├── README.md
-├── benches  # Directory for storing files related to load testing
-├── bin      # Directory for storing script files to start services
-├── build.rs # The build.rs file of Cargo
-├── config   # Directory for storing project configurations
-├── docs     # Directory for storing documentation
-├── example  # Directory for storing code examples
-├── makefile # The makefile of the project
-├── scripts  # Directory for storing relevant script files required by the project
-├── src      # Directory for storing source files of Rust - related code
-├── target   # Directory for files generated after compilation
-└── tests    # Directory for storing files related to project test cases
-```
-
-## Src Directory
-
-In the Src directory, mainly focus on the following directories: clients, cmd, common, journal - server, mqtt - bridge, mqtt - broker, placement - center, protocol, and storage - adapter.
-
-The code related to the MQTT protocol is in the mqtt - bridge, and the code for the Placement Center is in the placement - center. The rest are for serving these two modules.
-
-The code entry points are in the cmd module, which has three sub - modules: mqtt - server, placement - center, and journal - server, which are the entry points for the three components respectively. So, you can start looking at the code from here.
-
-The common code related to configuration and logging is in common/base.
-```
-.
-├── amqp - broker # Source files of the AMAP protocol Broker directory, not enabled yet
-│   ├── Cargo.toml
-│   ├── src
-│   └── tests
-├── amqp - plugins # Source files of the AMAP protocol Broker plugin directory, not enabled yet
-│   ├── Cargo.toml
-│   ├── src
-│   └── tests
-├── cli - command # Source files of the RobustMQ command - line tool cli, not enabled yet
-│   ├── Cargo.toml
-│   ├── src
-│   └── tests
-├── clients # Directory for clients of the Placement Center service
-│   ├── Cargo.toml
-│   ├── src
-│   └── tests
-├── cmd # Entry point for starting the project
-│   ├── Cargo.toml
-│   ├── src
-│   └── tests
-├── common # Directory for storing common code and modules
-│   ├── base # Storing common code, such as logging, configuration, utility classes, etc.
-│   ├── metadata - struct # Storing structs used in multiple projects
-│   ├── raft - rocksdb # Storing common code for Raft and RocksDB, not enabled yet
-│   ├── rocksdb - engine # Storing common code for RocksDB Engine, not enabled yet
-│   └── third - driver # Storing third - party drivers, such as MySQL
-├── journal - remote # Source files for storing Journal data remotely, not enabled yet
-│   ├── Cargo.toml
-│   ├── src
-│   └── tests
-├── journal - server # Source files of the Journal Server project
-│   ├── Cargo.toml
-│   ├── src
-│   └── tests
-├── mqtt - bridge # Source files of the MQTT bridging functionality
-│   ├── elasticsearch
-│   ├── kafka
-│   └── redis
-├── mqtt - broker # Source code of the MQTT broker module project
-│   ├── Cargo.toml
-│   ├── src
-│   └── tests
-├── placement - center # Source code of the Placement Center module project
-│   ├── Cargo.toml
-│   ├── src
-│   └── tests
-├── protocol # Source code related to all protocol parsing in the RobustMQ project
-│   ├── Cargo.toml
-│   ├── src
-│   └── tests
-└── storage - adapter # Source code of the Storage Adapter module project
-    ├── Cargo.toml
-    ├── src
-    └── tests
-```
diff --git a/docs/en/ContributionGuide/ContributingCode/Build-Develop-Env.md b/docs/en/ContributionGuide/ContributingCode/Build-Develop-Env.md
new file mode 100644
index 000000000..014216c83
--- /dev/null
+++ b/docs/en/ContributionGuide/ContributingCode/Build-Develop-Env.md
@@ -0,0 +1,78 @@
+# Setting Up the Basic Development Environment
+
+# Setting Up the Mac Environment
+
+## Main Steps
+
+::: tip
+⚠️ **Note**: The project currently includes a `rust-toolchain.toml` file by default, so it will use the Rust environment configured in that file. If you have installed Rust via Homebrew, you may encounter version conflicts. You will need to uninstall Rust and then set up the environment according to the instructions below.
+:::
+
+To run the code, you need to set up the Rust development environment first. After initializing the Rust environment, the project mainly depends on `cmake`, `rocksdb`, and `protoc`. You need to install these dependencies based on your operating system.
+
+- **Install Rust Basic Environment**
+ - Reference Document: [https://course.rs/first-try/installation.html](https://course.rs/first-try/installation.html)
+
+- **Rust Version**
+ - The current Rust version required is `nightly-2024-11-08`.
+  ```shell
+  rustup install nightly-2024-11-08
+  rustup default nightly-2024-11-08
+  rustc --version
+  ```
+
+- **Install Cmake**
+ - Installation command for macOS:
+  ```shell
+  brew install cmake
+  ```
+
+- **Install RocksDB**
+ - Reference Document: [https://github.com/rust-rocksdb/rust-rocksdb](https://github.com/rust-rocksdb/rust-rocksdb)
+ - Installation command for macOS:
+  ```shell
+  brew install rocksdb
+  ```
+
+- **Install Protoc**
+ - Reference Document: [https://www.jianshu.com/p/341293ee1286](https://www.jianshu.com/p/341293ee1286)
+ - Installation command for macOS:
+  ```shell
+  brew install protobuf
+  ```
+
+### Configuring the pre-commit Plugin
+
+RobustMQ uses `pre-commit` by default for code pre-commit checks, so you need to install the specified version of the `pre-commit` tool.
+
+First, you need to create a virtual environment using `Python` (version 3.8 or higher). The installation command is as follows:
+```shell
+python3 -m venv precommit_venv
+```
+
+After installation, activate the virtual environment with the following command:
+```shell
+source ./precommit_venv/bin/activate
+```
+
+Then, install the specified version of `pre-commit` using the project's environment:
+```shell
+pip3 install -r ./.requirements-precommit.txt
+```
+
+After installation, initialize the `pre-commit` hooks for the project content with the following command:
+```shell
+pre-commit install
+```
+
+::: tip
+⚠️ **Note**: Subsequent `git commit` operations will trigger the corresponding checks by `pre-commit`. If you do not want to perform checks with each commit, you can use `git commit -n` to skip the checks.
+:::
+
+The checks carried by `pre-commit` use tools such as `next-test`, `hawkeye`, `clippy`, `typos`, and `cargo-deny`. If any of these tools are missing, you can install them using the following commands:
+```shell
+cargo install hawkeye@5.8.1
+cargo install typos-cli
+cargo install cargo-deny@0.16.2 --locked
+cargo install cargo-nextest@0.9.84
+```
diff --git a/docs/en/ContributionGuide/ContributingCode/Cargo-Running.md b/docs/en/ContributionGuide/ContributingCode/Cargo-Running.md
new file mode 100644
index 000000000..27ff06cf1
--- /dev/null
+++ b/docs/en/ContributionGuide/ContributingCode/Cargo-Running.md
@@ -0,0 +1,19 @@
+# Running with Cargo
+
+1. **Run standalone by placement-center**
+
+   ```
+   cargo run --package cmd --bin placement-center -- --conf=config/placement-center.toml
+   ```
+
+   If the following output is displayed, it indicates that the placement-center has started successfully:
+   ![image](../../../images/Cargo-Running-1.png)
+
+2. **Run standalone by mqtt-server**
+
+   ```
+   cargo run --package cmd --bin mqtt-server -- --conf=config/mqtt-server.toml
+   ```
+
+   If the following output is displayed, it indicates that the mqtt-server has started successfully:
+   ![image](../../../images/Cargo-Running-2.png)
diff --git a/docs/en/ContributionGuide/ContributingCode/Code-Structure.md b/docs/en/ContributionGuide/ContributingCode/Code-Structure.md
new file mode 100644
index 000000000..e9ef14aa9
--- /dev/null
+++ b/docs/en/ContributionGuide/ContributingCode/Code-Structure.md
@@ -0,0 +1,91 @@
+# Code Structure
+
+## Root Directory
+
+Focus mainly on the following files and directories: `bin`, `config`, `docs`, `makefile`, `scripts`, `src`, `tests`.
+
+```
+├── Cargo.lock
+├── Cargo.toml
+├── LICENSE
+├── README.md
+├── benches  # Directory for benchmarking-related files
+├── bin # Directory for service startup scripts
+├── build.rs # Cargo's build.rs file
+├── config # Directory for project configurations
+├── docs # Directory for documentation
+├── example # Directory for code examples
+├── makefile # The project's makefile
+├── scripts # Directory for related scripts needed by the project
+├── src # Directory for Rust source files
+├── target # Directory for compiled files
+└── tests # Directory for project test cases
+```
+
+## Src Directory
+
+The `src` directory primarily focuses on the following directories: `clients`, `cmd`, `common`, `journal-server`, `mqtt-bridge`, `mqtt-broker`, `placement-center`, `protocol`, `storage-adapter`.
+
+The code related to the MQTT protocol is in `mqtt-bridge`, and the code for Placement Center is in `placement-center`. The other directories serve these two modules.
+
+The entry point for the code is in the `cmd` module, which includes `mqtt-server`, `placement-center`, and `journal-server` modules. These are the entry points for the three components, so you can start reading the code from here.
+
+Common code related to configuration and logging is in `common/base`.
+
+```
+.
+├── amqp-broker # Source files for the AMQP protocol Broker directory, not currently in use
+│   ├── Cargo.toml
+│   ├── src
+│   └── tests
+├── amqp-plugins # Source files for the AMQP protocol Broker plugins, not currently in use
+│   ├── Cargo.toml
+│   ├── src
+│   └── tests
+├── cli-command # Source files for the RobustMQ command-line tool cli, not currently in use
+│   ├── Cargo.toml
+│   ├── src
+│   └── tests
+├── clients # Directory for clients of the Placement Center service
+│   ├── Cargo.toml
+│   ├── src
+│   └── tests
+├── cmd # Entry point for project startup
+│   ├── Cargo.toml
+│   ├── src
+│   └── tests
+├── common # Directory for common code and modules
+│   ├── base # Common code, such as logging, configuration, utility classes, etc.
+│   ├── metadata-struct # Structures used by multiple projects
+│   ├── raft-rocksdb # Common code for Raft and RocksDB, not currently in use
+│   ├── rocksdb-engine # Common code for RocksDB Engine, not currently in use
+│   └── third-driver # Third-party driver classes, such as MySQL
+├── journal-remote # Source files for storing Journal data remotely, not currently in use
+│   ├── Cargo.toml
+│   ├── src
+│   └── tests
+├── journal-server # Source files for the Journal Server project
+│   ├── Cargo.toml
+│   ├── src
+│   └── tests
+├── mqtt-bridge # Source files for MQTT bridging functionality
+│   ├── elasticsearch
+│   ├── kafka
+│   └── redis
+├── mqtt-broker # Source code for the MQTT broker module
+│   ├── Cargo.toml
+│   ├── src
+│   └── tests
+├── placement-center # Source code for the Placement Center module
+│   ├── Cargo.toml
+│   ├── src
+│   └── tests
+├── protocol # Source code for all protocol parsing in the RobustMQ project
+│   ├── Cargo.toml
+│   ├── src
+│   └── tests
+└── storage-adapter # Source code for the Storage Adapter module
+    ├── Cargo.toml
+    ├── src
+    └── tests
+```
diff --git a/docs/en/ContributionGuide/ContributingCode/VsCode-Running.md b/docs/en/ContributionGuide/ContributingCode/VsCode-Running.md
new file mode 100644
index 000000000..74403e602
--- /dev/null
+++ b/docs/en/ContributionGuide/ContributingCode/VsCode-Running.md
@@ -0,0 +1,26 @@
+# Running in VSCode
+
+1. **Download the Project Code**
+    - Clone the project repository to your local machine.
+
+2. **Initialize the Environment**
+    - Ensure that all necessary dependencies and tools are installed and configured.
+
+3. **Navigate to the `src/cmd/src` Directory**
+    - You will see the following structure:
+   ```
+   .
+   ├── journal-server
+   │   └── server.rs
+   ├── mqtt-server
+   │   └── server.rs
+   └── placement-center
+       └── server.rs
+   ```
+
+4. **Open the Corresponding Component Directory**
+    - Open the `server.rs` file in the directory of the component you want to run. You will see the `main` function as shown in the figure below:
+
+   ![image](../../../images/VSCode-Running-1.png)
+
+    - Start the service as needed.
diff --git a/docs/en/ContributionGuide/ContributingDoc/Build-Doc-Env.md b/docs/en/ContributionGuide/ContributingDoc/Build-Doc-Env.md
new file mode 100644
index 000000000..b0a70a5de
--- /dev/null
+++ b/docs/en/ContributionGuide/ContributingDoc/Build-Doc-Env.md
@@ -0,0 +1,27 @@
+# How to Build the Documentation Environment
+
+RobustMQ uses [VitePress](https://vitepress.dev/) to build its documentation system. If you need to modify the configuration, you can refer to the [VitePress documentation](https://vitepress.dev/guide/getting-started) to help improve the documentation build for RobustMQ.
+
+## Mac
+### Prerequisites
+
+Install `node` using the following command:
+```shell
+brew install node
+```
+
+### Steps
+
+1. Install the packages required by `VitePress` using the following command:
+```shell
+npm install
+```
+
+2. Start local development with the following command:
+```shell
+npm run docs:dev
+```
+
+3. Open the local link, and the final result should look like this:
+
+![image](../../../images/Build-Doc-Env-1.png)
diff --git a/docs/en/ContributionGuide/ContributingDoc/Doc-Contribution-Guide.md b/docs/en/ContributionGuide/ContributingDoc/Doc-Contribution-Guide.md
new file mode 100644
index 000000000..852195c99
--- /dev/null
+++ b/docs/en/ContributionGuide/ContributingDoc/Doc-Contribution-Guide.md
@@ -0,0 +1,82 @@
+# Documentation Contribution Guide
+
+## Overview
+The directories `zh` and `en` represent Chinese and English documentation, respectively. The `images` directory contains the corresponding image content.
+
+## Markdown Function Support Guide
+
+For the content supported by Markdown, you can refer to the [VitePress Writing Guide](https://vitepress.dev/guide/markdown) for information on Markdown functionality and writing guidelines.
+
+## Notes
+1. When you write documentation in the `zh` directory, you need to copy it to the corresponding `en` directory. If you have time, you can use a large language model to translate it into the corresponding language. The same applies when writing `en` documentation.
+2. Store the corresponding document images in the `images` directory. The naming format should be `document-name-number`.
+3. If you need to reference other documents, you can refer to the [VitePress Writing Guide](https://vitepress.dev/guide/markdown). Many writing-related extension features can be found there to answer your questions.
+4. After completing the writing task, you need to add it to the corresponding directory. For specific steps, please refer to the content below.
+
+## How to Add Documents to the Directory
+1. Open the `doc/.vitepress/src/sidebars` directory, as shown in the following figure:
+   ![sidebars](../../../images/DocContributionGuide-1.png)
+
+   Here, `en` represents the English directory, and `zh` represents the Chinese directory. We will use the `en` directory as an example:
+   ```ts
+   export const sidebar = [
+       {
+           text: "Architect",
+           collapsed: true,
+           items: [
+               {text: "Overview", link: "/Architect/Overview"},
+               {text: "Placement Center", link: "/Architect/Placement-Center"},
+               {text: "Broker Server", link: "/Architect/Broker-Server"},
+               {text: "Storage Adapter", link: "/Architect/Storage-Adapter"},
+               {text: "Journal Server", link: "/Architect/Journal-Server"},
+               {text: "Ig Test", link: "/Architect/Test-Case"},
+               {
+                   text: "Configuration",
+                   collapsed: true,
+                   items: [
+                       {text: "Placement Center", link: "/Architect/Configuration/Placement-Center"},
+                       {text: "MQTT Broker", link: "/Architect/Configuration/Mqtt-Server"},
+                   ],
+               },
+           ],
+       },
+   ]
+   ```
+
+   The corresponding directory structure displayed is shown in the following figure:
+   ![doc-structure](../../../images/DocContributionGuide-2.png)
+
+   The structure in the `en` directory is shown in the following figure:
+   ![img.png](../../../images/DocContributionGuide-3.png)
+
+   Therefore, if you want to add a `Test.md` document to the corresponding directory, you just need to add the following content to the `en.mts` and `zh.mts` in `doc/.vitepress/src/sidebars` to add the content to the directory:
+
+   ```ts
+   export const sidebar = [
+       {
+           text: "Architect",
+           collapsed: true,
+           items: [
+               {text: "Overview", link: "/Architect/Overview"},
+               {text: "Placement Center", link: "/Architect/Placement-Center"},
+               {text: "Broker Server", link: "/Architect/Broker-Server"},
+               {text: "Storage Adapter", link: "/Architect/Storage-Adapter"},
+               {text: "Journal Server", link: "/Architect/Journal-Server"},
+               {text: "Ig Test", link: "/Architect/Test-Case"},
+               {text: "Test", link: "/Architect/Test"}, // [!code highlight]
+               {
+                   text: "Configuration",
+                   collapsed: true,
+                   items: [
+                       {text: "Placement Center", link: "/Architect/Configuration/Placement-Center"},
+                       {text: "MQTT Broker", link: "/Architect/Configuration/Mqtt-Server"},
+                   ],
+               },
+           ],
+       },
+   ]
+   ```
+
+   ::: tip
+   If you want to learn more about how to use it, you can refer to the [VitePress Sidebar Documentation](https://vitepress.dev/zh/reference/default-theme-sidebar).
+   :::
diff --git a/docs/en/ContributionGuide/GitHub-Contribution-Guide.md b/docs/en/ContributionGuide/GitHub-Contribution-Guide.md
index a24967e1a..3139a64fe 100644
--- a/docs/en/ContributionGuide/GitHub-Contribution-Guide.md
+++ b/docs/en/ContributionGuide/GitHub-Contribution-Guide.md
@@ -1,65 +1,110 @@
-# Github Contribution Guide
-## 1. Create an ISSUE
+# GitHub Contribution Guide
 
-There are two types of ISSUE scopes: requirements and minor fixes. Therefore, at the title level, they need to be distinguished by two prefixes: RBIP-* and MINOR.
+## 1. Creating an ISSUE
 
-**RBIP-***: It indicates the addition of features and functions. For example, RBIP-09, RBIP-10, and the subsequent serial numbers increase incrementally.
-![image](../../images/doc-image9.png)
+The main types of ISSUES include: feat, bug, test, refactor, chore, style, docs, perf, build, ci. The corresponding explanations are as follows:
+- feat: New feature
+- bug: Bug issue
+- test: Additional test cases
+- refactor: Code refactoring that is neither a new feature nor a bug fix
+- docs: Changes and additions to documentation, including code comments
+- perf: Code involving performance optimization, which requires proof of optimization
+- build: Changes to the build system or external dependencies
+- ci: Changes to continuous integration configuration, including modifications to configuration files and scripts
+- style: Code style changes, used for submission formatting, punctuation, etc., that do not affect the code
+- chore: Mixed types of work, possibly involving multiple other types of changes
 
-**MINOR**: It indicates the fixing or addition of some minor functions. The title can start with "MINOR:".
+### Users and Contributors Creating ISSUES
+
+For users, if there are new feature requirements or bug fixes, they can submit an Issue by selecting `BugReport` and `FeatureRequest`.
+
+![image](../../images/GithubContributionGuide-1.png)
+
+For contributors, if there are new feature requirements or bug fixes for a `Pull Request`, they should also create corresponding `BugReport` and `FeatureRequest` ISSUES before submitting the `Pull Request`. For other types of `Pull Request` submissions, use `Enhancement` to create an Issue according to the corresponding category before submitting the `Pull Request`.
+
+![image](../../images/GithubContributionGuide-2.png)
+
+### Committer Creating ISSUES
+
+Creating various types of Issues is the same as for users, but since this involves proactive planning and task development, there are two scenarios. For small tasks, directly use `BugReport`, `Enhancement`, `FeatureRequest` to associate with the `Pull Request`. For larger planned tasks that need to be broken down, use `Umbrella` to associate with the corresponding Issue and plan subtasks below it, as shown below:
+
+todo Add images on how to use umbrella to create subtasks
+
+For each subtask, create the corresponding subtask using `Subtask` and describe the specific content that needs to be completed for that subtask.
+
+For the title of `Umbrella`, it is temporarily divided into two categories, RBIP-* and MINOR.
+
+RBIP-*: Indicates the addition of features and characteristics, such as RBIP-09, RBIP-10, with the sequence number increasing.
+![image](../../images/GithubContributionGuide-3.png)
+
+MINOR: Indicates fixing or adding small features. It can start with MINOR, followed by the title.
 ![image](../../images/doc-image10.png)
 
-## 2. Create a Pull Request
+## 2. Creating a Pull Request
 
-If a PR is associated with an ISSUE, the following must be added to the content of the PR:
+If the PR is associated with an ISSUE, it must include the following in the PR content:
 
+```
 close #issue_number
-"close" is a fixed prefix, and "#" is also a fixed prefix. "issue_number" represents the ISSUE number associated with this PR. For example:
+```
+
+`close` is a fixed prefix, `#` is also a fixed prefix, and `issue_number` represents the ISSUE number associated with the PR. For example:
 
 ![image](../../images/doc-image11.png)
-#297 and #292 are the corresponding ISSUE numbers.
 
-For example, if you need to submit a PR to solve ISSUE #297, the content of the PR should include "close #297". At this time, when this PR is merged, this ISSUE will be automatically closed. After the PR is merged, the effects of the PR and the ISSUE are as follows:
+#297, #292 are the corresponding ISSUE numbers.
+
+For example, if you need to submit a PR to resolve ISSUE #297, the PR content should include:
+
+```
+close #297
+```
+
+When this PR is MERGED, the ISSUE will be automatically closed. After the PR is merged, the PR and ISSUE will look like this:
 
-**PR**:
+PR:
 ![image](../../images/doc-image12.png)
 
-**ISSUE**:
+ISSUE:
 ![image](../../images/doc-image13.png)
 
-## 3. Reasons for Failed PR Submission
+For more details, you can refer to the [PR submission example](./Pull-Request-Example.md).
 
-### License Error
+## 3. Reasons for PR Submission Failure
 
-The License checker / license - header - check (pull_request) fails. Some files do not have a License added, and it needs to be added. It is recommended to execute the check command before each submission.
+#### License Error
+
+License checker / license-header-check (pull_request) failed. Some files are missing a License, which needs to be added. It is best to run the check command before each submission.
 
 ```
 cargo install hawkeye
 
-# Execute in the current project to detect which files do not have a License added
+# Execute in the current project to check which files are missing a License
 hawkeye check
 
 # Automatically add a License to each code file
 hawkeye format
 ```
 
-### Incorrect Title Format
+#### Title Format Error
 
-The failure of PR Title Checker / check (pull_request_target) is due to an incorrect PR title format.
+PR Title Checker / check (pull_request_target) failed due to incorrect PR title format.
 
 ```
 Prefix: Title
-The available prefix options are: feat|fix|test|refactor|chore|style|docs|perf|build|ci|revert
+Prefix options include: feat|fix|test|refactor|chore|style|docs|perf|build|ci|revert
+
+feat: New feature
+For example: feat: Compatible with Rocksdb
 
-feat: New feature. For example: feat: Compatible with Rocksdb
 fix: Bug fix
-docs: Documentation changes
-style: Changes in code style (do not affect code logic), used for submitting changes such as formatting, punctuation, and whitespace that do not affect code operation.
-refactor: Code refactoring (code changes that are neither new feature additions nor bug fixes)
+docs: Documentation change
+style: Code style change (does not affect code logic), used for submissions that only involve formatting, punctuation, whitespace, etc., that do not affect code execution.
+refactor: Code refactoring (code changes that are neither new features nor bug fixes)
 perf: Performance optimization
-test: Addition or modification of tests
-chore: Miscellaneous (changes in the build process or auxiliary tools)
+test: Adding or modifying tests
+chore: Miscellaneous (changes to the build process or auxiliary tools)
 build: Changes to the build system or external dependencies
-ci: Changes to the continuous integration configuration, modification of configuration files and scripts.
+ci: Changes to continuous integration configuration, including modifications to configuration files and scripts.
 revert: Revert
 ```
diff --git a/docs/en/ContributionGuide/Pull-Request-Example.md b/docs/en/ContributionGuide/Pull-Request-Example.md
index ef9c7c0be..55079e7ab 100644
--- a/docs/en/ContributionGuide/Pull-Request-Example.md
+++ b/docs/en/ContributionGuide/Pull-Request-Example.md
@@ -1,36 +1,36 @@
-# Github pull request
-## Overview
-Now that you've seen this ([build your develop](./Build-Develop-Env.md)), if you've found a project bug or something that upsets you, don't you want to get involved and help us improve by submitting a Pull Request?
+# PR Submission Example
 
-Below is a complete Pull Request process example, an example of fixing a bug:
+Since you've made it this far (assuming you have already set up the basic development environment as described in [ContributingCode/Build-Develop-Env.md](ContributingCode/Build-Develop-Env.md)), if you've found a bug in the project or something that bothers you, you might want to get involved and submit a Pull Request to help us improve.
 
-1. Fork the project
+Here is a complete example of the Pull Request process, specifically for fixing a bug:
 
-   Go to https://github.com/robustmq/robustmq and click the Star button, then click the Fork button, and copy the address of your Fork repository https://github.com/your_username/robustmq.git
+1. **Fork the Project**
 
-2. Clone your repository
+   Start by clicking the Star button on [https://github.com/robustmq/robustmq](https://github.com/robustmq/robustmq), then click the Fork button to copy your forked repository address: [https://github.com/your-username/robustmq.git](https://github.com/your-username/robustmq.git).
 
-   Create a work directory
+2. **Clone Your Repository**
+
+   Create a `work` directory:
 
    ```shell
    mkdir work
    cd work
-   git clone https://github.com/your_username/robustmq.git
+   git clone https://github.com/your-username/robustmq.git
    ```
 
-3. Create a new branch
+3. **Create a New Branch**
 
    ```shell
    cd robustmq
    git checkout -b pr-example
    ```
 
-4. Modify the file
+4. **Modify Files**
 
    ```rust
    #[tokio::main]
    async fn main() {
-       # Add new code here
+       // Add new code here
        println!("Hello, robustmq!");
        let args = ArgsParams::parse();
        init_placement_center_conf_by_path(&args.conf);
@@ -41,55 +41,55 @@ Below is a complete Pull Request process example, an example of fixing a bug:
    }
    ```
 
-5. Commit the changes
+5. **Commit Changes**
 
-   If your development environment has `pre-commit` configured, it will check your code style and automatically run unit tests `make test`
+   If you have `pre-commit` configured in your development environment, it will help check code style and automatically run unit tests `make test`.
 
    ```shell
    git add .
    git commit -m "fix bug"
    ```
-   If all goes well, we can proceed to integration testing
 
-6. Integration testing
+   If everything is fine, we can proceed to integration testing.
 
-   | Test item                     | Command                |
-      |------------------------------|-----------------------|
-   | Unit tests                   | make test             |
-   | Integration test MQTT Broker | make mqtt-ig-test     |
-   | Integration test Placement Center | make place-ig-test   |
-   | Integration test Journal Engine | make journal-ig-test |
+6. **Integration Testing**
 
-   ```shell
+   | Test Item                      | Command                 |
+      |----------------------------|---------------------|
+   | Unit Tests                  | make test           |
+   | Integration Test MQTT Broker | make mqtt-ig-test   |
+   | Integration Test Placement Center | make place-ig-test  |
+   | Integration Test Journal Engine | make journal-ig-test|
 
+   ```shell
    # Integration testing
    make mqtt-ig-test
    make place-ig-test
    make journal-ig-test
-   # If all these steps are successful, then your Pull Request can be submitted.
+   # If all these steps are successful, you can submit your Pull Request.
 
    git push origin pr-example
-
    ```
 
-7. (Optional) What if you encounter the main branch of robustmq updating after the test is completed and ready to initiate a pr
+7. **(Optional) What if the main branch of robustmq is updated before you are ready to submit your PR?**
 
-   Merge the main branch of robustmq into your branch, and then push
+   Merge the main branch of robustmq into your branch, then push.
 
    ```shell
    cd robustmq
    # Add the original project repository as a remote repository (if not already added):
    git remote add upstream https://github.com/robustmq/robustmq.git
-   # Verify that the upstream remote repository has been successfully added:
+   # Verify if the upstream remote repository has been successfully added:
    git remote -v
-   # Fetch the latest changes from all branches of the original project (upstream):
+   # Fetch the latest changes from the original project (upstream):
    git fetch upstream
-   # Ensure that the branch you are currently working on is the branch you want to merge into
+   # Ensure you are on the branch you want to merge into:
    git checkout pr-example
    # Merge the main branch of the original repository into your branch
    git merge upstream/main
    ```
-   At this point, you should go back to section `6`, conduct integration testing, and then
+
+   At this point, you should go back to section `6` and perform integration testing again.
 
    ```shell
    # Commit the merge
@@ -98,15 +98,15 @@ Below is a complete Pull Request process example, an example of fixing a bug:
    git push origin pr-example
    ```
 
-8. Create a Pull Request
+8. **Create a Pull Request**
 
-   Recall the [GitHub Contribution Guide](./GitHub-Contribution-Guide.md), open your fork address, click the New Pull Request button, fill in the title and content, and click the Create Pull Request button to complete.
+   Let's recall the [GitHub Contribution Guide](./GitHub-Contribution-Guide.md). Open your forked repository, click the New Pull Request button, fill in the title and content, and click the Create Pull Request button to complete.
 
    ```md
    Title: fix: fix bug example
-   Content: fix bug balabala
+   Content: Fix bug blablabla
    ```
 
-9. Wait for merge
+9. **Wait for Merge**
 
-   This process will have GitHub CI check your branch's code again, and if the check passes, your Pull Request will be merged. Wait for the maintainers of RobustMQ to review, and if it passes, your Pull Request will be merged.
+   During this process, GitHub CI will check the code in your branch again. If the check passes, your Pull Request will be merged. Wait for the RobustMQ maintainers to review it. If approved, your Pull Request will be merged.
diff --git a/docs/en/ContributionGuide/VsCode-Running.md b/docs/en/ContributionGuide/VsCode-Running.md
deleted file mode 100644
index 05b172ac7..000000000
--- a/docs/en/ContributionGuide/VsCode-Running.md
+++ /dev/null
@@ -1,18 +0,0 @@
-# VS Code Running
-## Overview
-Download the project code.
-Initialize the environment.
-Enter the `src/cmd/src` directory, and you can see:
-```
-.
-├── journal-server
-│   └── server.rs
-├── mqtt-server
-│   └── server.rs
-└── placement-center
-    └── server.rs
-```
-
-Enter the directory of the corresponding component, open `server.rs`, and you will see the `main` function. As shown in the figure below, you can start the service:
-
-![image](../../images/doc-image8.png)
diff --git a/docs/en/OtherData/RobustMQ-Rust-China-For-2024.md b/docs/en/OtherData/RobustMQ-Rust-China-For-2024.md
deleted file mode 100644
index f075a2ec8..000000000
--- a/docs/en/OtherData/RobustMQ-Rust-China-For-2024.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# RobustMQ RUST China For 2024
-## Overview
-show PPT：https://docs.qq.com/slide/DSFB6cE5YVFBPSFNQ
diff --git a/docs/en/OverView/RoadMap.md b/docs/en/OverView/RoadMap.md
index d4b6d7abf..5405261de 100644
--- a/docs/en/OverView/RoadMap.md
+++ b/docs/en/OverView/RoadMap.md
@@ -1,85 +1,99 @@
 # RoadMap
+
 ## 2024
-In 2024: Improve RobustMQ MQTT and enhance the basic capabilities of RobustMQ.
-- Improve the functionality of RobustMQ MQTT.
-- Enhance the stability and performance of the metadata service Placement Center.
-- Conduct load testing on RobustMQ MQTT and optimize its performance.
-- Conduct load testing on Placement Center and optimize its performance.
-- Improve the test cases for RobustMQ MQTT and Placement Center.
-- Improve the official website and technical documentation of RobustMQ.
-- Recruit partners interested in Rust or middleware to jointly build a remarkable basic software.
+
+2024: Improve RobustMQ MQTT and enhance the basic capabilities of RobustMQ.
+
+- Enhance the functionality of RobustMQ MQTT.
+- Improve the stability and performance of the metadata service, Placement Center.
+- Conduct stress tests on RobustMQ MQTT and optimize performance.
+- Conduct stress tests on Placement Center and optimize performance.
+- Improve test cases for RobustMQ MQTT and Placement Center.
+- Enhance the official website and technical documentation of RobustMQ.
+- Look for friends interested in Rust or middleware to build a great foundational software together.
 
 ## 2025 H1
-### Overview
 
-### Details
-#### Placement Center
-> Goal: The cluster mode of Placement Center runs stably, conduct performance load testing, and improve monitoring metrics.
+### Placement Center
+
+**Goal:** Stable operation of Placement Center in cluster mode, performance testing, and completion of monitoring metrics.
+
+#### Features
+1. Observability
+   - Add monitoring metrics for Placement Center.
+
+#### Improvements
+1. Improve cluster capabilities to ensure stable operation in cluster mode.
+   - Ensure stable operation of GRPC interfaces in cluster mode.
+   - Ensure stable operation of GRPC interfaces during Leader switching.
+   - During Leader switching, pause the Controller on non-Leader nodes and run the Controller on the Leader node.
+2. Conduct performance testing on the Placement Center service.
+
+### Robust MQTT
+
+**Goal:** Complete the first phase, ensuring stable operation of RobustMQ MQTT in cluster mode. Optimize existing functional code, improve test cases, and add some features.
 
-Detailed tasks:
-1. Improve cluster capabilities to enable stable operation in cluster mode.
-   1. In cluster mode, the interfaces provided by GRPC run stably.
-   2. In cluster mode, when the leader switches, the interfaces provided by GRPC run stably.
-   3. In cluster mode, when the leader switches, the Controller of non - leader nodes pauses, and the Controller of the leader node runs.
-2. Conduct performance load testing on the Placement Center service.
-3. Add monitoring metrics for Placement Center.
+#### Features
+MQTT
+1. Offline messages
+   - Support for Journal
+   - Support for MySQL
+   - Support for Redis
+2. Data integration
+   - Implementation of a data integration framework
+   - Support for Kafka
+3. Schema
+   - Framework implementation
+4. Subscription
+   - Optimize subscription process to automatically discard messages without subscriptions
+   - Automatic subscription
+5. Observability
+   - Improve Metrics
+   - Integrate with otel
+6. Develop a throttling module (for request count, connection count, traffic, etc.)
+7. Other
+   - Address connection jitter
 
-#### Robust MQTT
-> Goal: Complete the first phase, ensuring the stable operation of RobustMQ MQTT in cluster mode. Optimize the current functional code, improve test cases, and add some functions.
+Dashboard
+1. Complete the framework for the Dashboard.
+2. Implement linkage between the Dashboard and MQTT Broker's Admin-related interfaces.
 
+#### Testing
+1. Improve unit tests for publishing-related code.
+2. Improve unit tests for subscription-related code.
+
+#### Improvements
 Cluster mode:
-1. Ensure the stable operation of Robust MQTT in multi - node mode.
-2. Run in multi - node mode in Docker in cluster mode.
-3. Conduct performance load testing on MQTT TCP and improve it.
-
-Test cases:
-1. Improve unit tests for code related to publishing.
-2. Improve unit tests for code related to subscribing.
-
-Functions:
-1. Optimize the subscription process, automatically discard messages without subscriptions, and support offline messages.
-2. Support Journals for offline messages.
-3. Support MySQL for offline messages.
-4. Support Redis for offline messages.
-5. Implement the MQTT data integration framework.
-6. Support Kafka in MQTT data integration.
-7. Implement the MQTT - supported Schema framework.
-8. Enable auto - subscription.
-9. Handle connection jitter.
-10. Improve Metrics.
-11. Integrate with opentelemetry.
-12. Develop a rate - limiting module (for request count, connection count, traffic, etc.).
-13. Improve the Auth module.
-
-Cli (Command - line):
-1. Standardize the output format of command - line content.
-2. Improve MQTT - related Admin interfaces and capabilities.
-
-Dashboard:
-1. Build the framework of the Dashboard.
-2. Link the Dashboard with the Admin - related interfaces of the MQTT Broker.
-
-#### Journal Engine
-> Goal: Ensure the stable operation of Journal Engine in single - node mode.
-
-Functions:
-1. Develop the stable version code of the core functions of the first version of Journal Engine.
-2. Improve the core processes in single - machine mode.
-   1. Data reading and writing.
-   2. Operations (create, read, update, delete) on Shard/Segment.
-   3. Conversion of Segment Status.
-3. Improve the Journal Engine Client.
-   1. Support core capabilities of data reading and writing.
-4. Ensure stable operation in single - machine mode.
-5. Design the ISR mode for multiple replicas.
-
-#### Storage Adapter
-> Goal: Support Journal Engine, MySQL, Redis, and explore support for remote object storage (such as Aws S3).
-
-Functions:
-1. Support Journal.
-2. Support MySQL.
-3. Support Redis.
-4. Support Aws S3.
-
-## 2025 H2
+1. Ensure stable operation of Robust MQTT in multi-node mode.
+2. Support Docker multi-node operation in cluster mode.
+3. Conduct performance testing on MQTT TCP and improve it.
+4. Complete the Auth module.
+
+CLI:
+1. Improve the unified format of command-line output.
+2. Enhance MQTT-related Admin interfaces and capabilities.
+
+### Journal Engine
+
+**Goal:** Stable operation of Journal Engine in single-node mode.
+
+#### Features
+1. Stable version of the first version of the core functionality of Journal Engine.
+2. Complete the core processes of single-node mode.
+   1. Data read and write
+   2. Add, delete, modify, and query Shard/Segment
+   3. Segment Status transition
+3. Improve Journal Engine Client.
+   1. Support for core data read and write capabilities.
+4. Stable single-node operation.
+5. Design a multi-replica ISR mode.
+
+### Storage Adapter
+
+**Goal:** Support for Journal Engine, MySQL, Redis, and explore support for remote object storage (e.g., Aws S3).
+
+#### Features
+1. Support for Journal.
+2. Support for MySQL.
+3. Support for Redis.
+4. Support for Aws S3.
diff --git a/docs/images/Build-Doc-Env-1.png b/docs/images/Build-Doc-Env-1.png
new file mode 100644
index 000000000..ac01e733e
Binary files /dev/null and b/docs/images/Build-Doc-Env-1.png differ
diff --git a/docs/images/doc-image6.png b/docs/images/Cargo-Running-1.png
similarity index 100%
rename from docs/images/doc-image6.png
rename to docs/images/Cargo-Running-1.png
diff --git a/docs/images/doc-image7.png b/docs/images/Cargo-Running-2.png
similarity index 100%
rename from docs/images/doc-image7.png
rename to docs/images/Cargo-Running-2.png
diff --git a/docs/images/DocContributionGuide-1.png b/docs/images/DocContributionGuide-1.png
new file mode 100644
index 000000000..ee1cb6149
Binary files /dev/null and b/docs/images/DocContributionGuide-1.png differ
diff --git a/docs/images/DocContributionGuide-2.png b/docs/images/DocContributionGuide-2.png
new file mode 100644
index 000000000..1d900353a
Binary files /dev/null and b/docs/images/DocContributionGuide-2.png differ
diff --git a/docs/images/DocContributionGuide-3.png b/docs/images/DocContributionGuide-3.png
new file mode 100644
index 000000000..b3cb79dc3
Binary files /dev/null and b/docs/images/DocContributionGuide-3.png differ
diff --git a/docs/images/GithubContributionGuide-1.png b/docs/images/GithubContributionGuide-1.png
new file mode 100644
index 000000000..a53eef6a8
Binary files /dev/null and b/docs/images/GithubContributionGuide-1.png differ
diff --git a/docs/images/GithubContributionGuide-2.png b/docs/images/GithubContributionGuide-2.png
new file mode 100644
index 000000000..b9621f428
Binary files /dev/null and b/docs/images/GithubContributionGuide-2.png differ
diff --git a/docs/images/doc-image9.png b/docs/images/GithubContributionGuide-3.png
similarity index 100%
rename from docs/images/doc-image9.png
rename to docs/images/GithubContributionGuide-3.png
diff --git a/docs/images/doc-image8.png b/docs/images/VSCode-Running-1.png
similarity index 100%
rename from docs/images/doc-image8.png
rename to docs/images/VSCode-Running-1.png
diff --git a/docs/images/WechatGroup.jpg b/docs/images/WechatGroup.jpg
index 0818940bd..f534b4fb0 100644
Binary files a/docs/images/WechatGroup.jpg and b/docs/images/WechatGroup.jpg differ
diff --git a/docs/images/wechat.jpg b/docs/images/wechat.jpg
index 30bb6a712..577a7318d 100644
Binary files a/docs/images/wechat.jpg and b/docs/images/wechat.jpg differ
diff --git a/docs/zh/ContributionGuide/Build-Develop-Env.md b/docs/zh/ContributionGuide/ContributingCode/Build-Develop-Env.md
similarity index 79%
rename from docs/zh/ContributionGuide/Build-Develop-Env.md
rename to docs/zh/ContributionGuide/ContributingCode/Build-Develop-Env.md
index 9eafff982..a28928d9a 100644
--- a/docs/zh/ContributionGuide/Build-Develop-Env.md
+++ b/docs/zh/ContributionGuide/ContributingCode/Build-Develop-Env.md
@@ -1,9 +1,12 @@
 # 基础开发环境搭建
 # Mac环境搭建
 ## 主要步骤
-> ⚠️注意：当前项目中已经默认携带了`rust-toolchain.toml`,
-> 因此默认情况下会使用该文件配置的rustc环境，如果通过brew安装了rust
-> 可能会出现版本被覆盖的问题， 需要卸载后重新按照该内容进行搭建
+
+::: tip
+ ⚠️注意：当前项目中已经默认携带了`rust-toolchain.toml`, 
+ 因此默认情况下会使用该文件配置的rustc环境，如果通过brew安装了rust 
+ 可能会出现版本被覆盖的问题， 需要卸载后重新按照该内容进行搭建
+:::
 
 代码运行需要先搭建Rust开发环境，初始化rust环境后。 项目主要依赖 cmake、rocksdb、
 protoc， 需要根据不同的操作系统环境去安装这些依赖。
@@ -66,9 +69,11 @@ pip3 install -r ./.requirements-precommit.txt
 pre-commit install
 ```
 
-> ⚠️注意: 后续进行任何的`git commit`操作，`pre-commit`都会执行
-> 对应的检查， 这里如果不想每次提交都进行检查可以使用`git commit -n`
-> 来跳过检查。
+::: tip
+⚠️注意: 后续进行任何的`git commit`操作，`pre-commit`都会执行 
+对应的检查， 这里如果不想每次提交都进行检查可以使用`git commit -n`
+来跳过检查。
+:::
 
 `pre-commit`携带的检查功能使用了next-test,hawkeye,clippy,
 typos,cargo-deny等工具, 这些工具如果缺少可以参考如下命令进行安装
diff --git a/docs/zh/ContributionGuide/Cargo-Running.md b/docs/zh/ContributionGuide/ContributingCode/Cargo-Running.md
similarity index 80%
rename from docs/zh/ContributionGuide/Cargo-Running.md
rename to docs/zh/ContributionGuide/ContributingCode/Cargo-Running.md
index 2f6e98ffa..a209b224e 100644
--- a/docs/zh/ContributionGuide/Cargo-Running.md
+++ b/docs/zh/ContributionGuide/ContributingCode/Cargo-Running.md
@@ -4,7 +4,7 @@
 cargo run --package cmd --bin placement-center -- --conf=config/placement-center.toml
 ```
 输出如下信息，表示 placement-center 启动成功:
-![image](../../images/doc-image6.png)
+![image](../../../images/Cargo-Running-1.png)
 
 2. Run standalone by mqtt-server
 
@@ -13,4 +13,4 @@ cargo run --package cmd --bin mqtt-server -- --conf=config/mqtt-server.toml
 ```
 
 输出如下信息，标识 mqtt-server 启动成功：
-![image](../../images/doc-image7.png)
+![image](../../../images/Cargo-Running-2.png)
diff --git a/docs/zh/ContributionGuide/Code-Structure.md b/docs/zh/ContributionGuide/ContributingCode/Code-Structure.md
similarity index 100%
rename from docs/zh/ContributionGuide/Code-Structure.md
rename to docs/zh/ContributionGuide/ContributingCode/Code-Structure.md
diff --git a/docs/zh/ContributionGuide/VsCode-Running.md b/docs/zh/ContributionGuide/ContributingCode/VsCode-Running.md
similarity index 88%
rename from docs/zh/ContributionGuide/VsCode-Running.md
rename to docs/zh/ContributionGuide/ContributingCode/VsCode-Running.md
index a515ea729..0acbdfb51 100644
--- a/docs/zh/ContributionGuide/VsCode-Running.md
+++ b/docs/zh/ContributionGuide/ContributingCode/VsCode-Running.md
@@ -14,4 +14,4 @@
 
 进入对应组件的目录，打开server.rs，会看到main函数，如下图所示，启动服务即可:
 
-![image](../../images/doc-image8.png)
+![image](../../../images/VSCode-Running-1.png)
diff --git a/docs/zh/ContributionGuide/ContributingDoc/Build-Doc-Env.md b/docs/zh/ContributionGuide/ContributingDoc/Build-Doc-Env.md
new file mode 100644
index 000000000..f3f3e37a5
--- /dev/null
+++ b/docs/zh/ContributionGuide/ContributingDoc/Build-Doc-Env.md
@@ -0,0 +1,32 @@
+# 如何构建文档环境
+
+RobustMQ使用的是[VitePress](https://vitepress.dev/)来构建对应的文档系统，
+如果需要修改配置，可以参考[VitPress文档](https://vitepress.dev/guide/getting-started)
+来帮助RobustMQ的文档构建的更好。
+
+## Mac
+### 前置准备
+
+通过如下命令安装`node`
+```shell
+brew install node
+```
+### 具体步骤
+
+1. 通过如下命令安装`VitePress`所需要的包
+
+```shell
+npm install 
+```
+
+2. 通过如下命令开启本地调试
+
+```shell
+npm run docs:dev
+```
+
+3. 打开本地链接，最终效果如下
+
+![image](../../../images/Build-Doc-Env-1.png)
+
+
diff --git a/docs/zh/ContributionGuide/ContributingDoc/Doc-Contribution-Guide.md b/docs/zh/ContributionGuide/ContributingDoc/Doc-Contribution-Guide.md
new file mode 100644
index 000000000..409bbac53
--- /dev/null
+++ b/docs/zh/ContributionGuide/ContributingDoc/Doc-Contribution-Guide.md
@@ -0,0 +1,89 @@
+# 文档贡献指南
+## 概述
+目录`zh`和`en`分别代表着中文和英文的文档, 目录`images`中存放了对应的
+图片内容
+
+## MarkDown功能支持指南
+
+MarkDown支持的内容可以参考[VitePress写作指南](https://vitepress.dev/guide/markdown)
+关于MarkDown的功能支持以及写作指南
+
+
+## 注意事项
+1. 当你编写`zh`文档的同时你需要在`en`对应的目录复制一份，如果有时间，您
+也可以通过大模型翻译成对应的语言，编写`en`文档也同理。
+2. 对应文档的图片存放到`images`中，具体的命名格式为`文档名-编号`即可。
+3. 如果要引用其他文档，可以参考[VitePress写作指南](https://vitepress.dev/guide/markdown)，
+很多写作相关的扩展功能，你都可以通过它找到问题的答案
+4. 在完成写作任务后，你需要添加到对应的目录当中，具体的步骤请参考下面的内容。
+
+## 如何将文档添加到目录
+1. 打开`doc/.vitepress/src/sidebars`目录，具体如下图所示
+![sidebars](../../../images/DocContributionGuide-1.png)
+
+其中`en`代表的是英文目录，`zh`代表的是中文目录, 这里我们以`en`目录
+为例子, 
+```ts
+export const sidebar = [
+    {
+        text: "Architect",
+        collapsed: true,
+        items: [
+            {text: "Overview", link: "/Architect/Overview"},
+            {text: "Placement Center", link: "/Architect/Placement-Center"},
+            {text: "Broker Server", link: "/Architect/Broker-Server"},
+            {text: "Storage Adapter", link: "/Architect/Storage-Adapter"},
+            {text: "Journal Server", link: "/Architect/Journal-Server"},
+            {text: "Ig Test", link: "/Architect/Test-Case"},
+            {
+                text: "Configuration",
+                collapsed: true,
+                items: [
+                    {text: "Placement Center", link: "/Architect/Configuration/Placement-Center"},
+                    {text: "MQTT Broker", link: "/Architect/Configuration/Mqtt-Server"},
+                ],
+            },
+        ],
+    },
+]
+```
+
+该部分内容对应显示的目录结构如下图所示:
+![doc-structure](../../../images/DocContributionGuide-2.png)
+
+该部分在`en`目录中的结构如下图所示:
+![img.png](../../../images/DocContributionGuide-3.png)
+
+因此，如果要在对应目录下增加一个`Test.md`文档，我们只需要在`doc/.vitepress/src/sidebars`
+的`en.mts`和`zh.mts`中添加如下的内容，即可将内容添加到目录当中
+
+```ts
+export const sidebar = [
+    {
+        text: "Architect",
+        collapsed: true,
+        items: [
+            {text: "Overview", link: "/Architect/Overview"},
+            {text: "Placement Center", link: "/Architect/Placement-Center"},
+            {text: "Broker Server", link: "/Architect/Broker-Server"},
+            {text: "Storage Adapter", link: "/Architect/Storage-Adapter"},
+            {text: "Journal Server", link: "/Architect/Journal-Server"},
+            {text: "Ig Test", link: "/Architect/Test-Case"},
+            {text: "Test", link: "/Archhitect/Test"}, // [!code highlight]
+            {
+                text: "Configuration",
+                collapsed: true,
+                items: [
+                    {text: "Placement Center", link: "/Architect/Configuration/Placement-Center"},
+                    {text: "MQTT Broker", link: "/Architect/Configuration/Mqtt-Server"},
+                ],
+            },
+        ],
+    },
+]
+```
+
+::: tip
+如果你想要学习一下更多的使用可以参考
+[VitePress侧边栏文档](https://vitepress.dev/zh/reference/default-theme-sidebar)
+::: 
\ No newline at end of file
diff --git a/docs/zh/ContributionGuide/GitHub-Contribution-Guide.md b/docs/zh/ContributionGuide/GitHub-Contribution-Guide.md
index 919bf656b..102b2cc58 100644
--- a/docs/zh/ContributionGuide/GitHub-Contribution-Guide.md
+++ b/docs/zh/ContributionGuide/GitHub-Contribution-Guide.md
@@ -1,10 +1,51 @@
 # Github贡献指南
 ## 1、创建 ISSUE
 
-ISSUE 范围两类，需求和小的 Fixed，所以在标题层面，需要通过：RBIP-\*和 MINOR 两个前缀来区分。
+ISSUE 主要的范围类型有：feat, bug, test, refactor, chore, style, docs, perf, build, ci,
+对应的解释内容如下：
+- feat: 新功能特性
+- bug: 发现的Bug问题
+- test: 增加的测试用例
+- refactor: 对代码的重构，既不是新功能特性也不是bug代码更改
+- docs: 文档的变更与添加，对代码的注释也属于此内容
+- perf: 设计到性能优化的代码，这部分需要有相关的优化证明
+- build: 构建系统或外部依赖项的变更
+- ci: 持续集成配置的变成，配置文件和脚本的修改等
+- style: 代码风格变动，用于提交格式化，标点符号等不影响代码的变更
+- chore: 混杂类型的工作，可能有多个其他类型的变更
+
+### 用户与贡献者创建ISSUE
+
+对于用户而言，如果有新的feat需求和bug的修复的需求，
+可以通过选择`BugReport`以及`FeatureRequest`来提交Issue。
+
+![image](../../images/GithubContributionGuide-1.png)
+
+对于贡献者而言，如果有新的feat需求和bug的修复的`Pull Request`
+进行提交，同用户一样创建对应的`BugReport`以及`FeatureRequest`
+ISSUE后再进行`Pull Request`的提交。 如果是其他类型的`Pull Request`
+提交，请选择使用`Enhancement`来按照对应的分类创建好Issue后再进行`Pull
+Request`的提交。
+
+![image](../../images/GithubContributionGuide-2.png)
+
+### Committer创建ISSUE
+
+对于创建各个类型的Issue同用户创建一致，但是这里由于是主动介入规划的任务开发，所以会分为两种
+情况，针对一些小的任务，直接使用`BugReport`, `Enhancement`, `FeatureRequest`对`Pull
+Request`进行关联，如果是比较大的规划任务需要进行拆分，此时使用`Umbrella`关联对应的Issue后，
+在其下方规划子任务，具体如下所示:
+
+todo 补充如何使用umbrella创建子任务的图片
+
+对于各项的子任务，则是通过`Subtask`来创建对应的子任务，在子任务中说明该部分子任务需要完成
+的对应内容。
+
+对于`Umbrella`的标题，暂时分为两类，RBIP-\* 和 MINOR 进行区分。
 
 RBIP-\*： 是标识有特性和功能添加，比如 RBIP-09，RBIP-10，后面的序号是递增的。
-![image](../../images/doc-image9.png)
+![image](../../images/GithubContributionGuide-3.png)
+
 
 MINOR：标识是修复或者增加一些小的功能。则可以 MINOR：开头，接标题。
 ![image](../../images/doc-image10.png)
@@ -30,6 +71,9 @@ PR：
 ISSUE：
 ![image](../../images/doc-image13.png)
 
+
+详细可以参考[提交PR的例子](./Pull-Request-Example.md)。
+
 ## 3、提交 PR 失败的原因
 
 #### License 错误
diff --git a/docs/zh/ContributionGuide/Pull-Request-Example.md b/docs/zh/ContributionGuide/Pull-Request-Example.md
index 673c33881..5d4451f8f 100644
--- a/docs/zh/ContributionGuide/Pull-Request-Example.md
+++ b/docs/zh/ContributionGuide/Pull-Request-Example.md
@@ -1,5 +1,5 @@
 # PR 提交示例
-既然你已经看到这里了（[默认基础开发环境您已经配置好了](./Build-Develop-Env.md)），如果你发现了项目的bug或者让你不开心的地方，是不是想亲自下场，那么你可以提交一个 Pull Request 来帮助我们改进。
+既然你已经看到这里了（[默认基础开发环境您已经配置好了](ContributingCode/Build-Develop-Env.md)），如果你发现了项目的bug或者让你不开心的地方，是不是想亲自下场，那么你可以提交一个 Pull Request 来帮助我们改进。
 
 下面是一个完整的 Pull Request 流程示例，一个修改bug的示例：
 
diff --git a/docs/zh/OtherData/RobustMQ-Rust-China-For-2024.md b/docs/zh/OtherData/RobustMQ-Rust-China-For-2024.md
deleted file mode 100644
index b388ec555..000000000
--- a/docs/zh/OtherData/RobustMQ-Rust-China-For-2024.md
+++ /dev/null
@@ -1,1 +0,0 @@
-查看PPT：https://docs.qq.com/slide/DSFB6cE5YVFBPSFNQ
diff --git a/docs/zh/OverView/RoadMap.md b/docs/zh/OverView/RoadMap.md
index 21b444eb2..667af0a78 100644
--- a/docs/zh/OverView/RoadMap.md
+++ b/docs/zh/OverView/RoadMap.md
@@ -10,59 +10,68 @@
 - 寻找对 Rust 或中间件感兴趣的小伙伴，一起打造一个牛逼的基础软件
 
 ## 2025 H1
-### 概述
 
-### 明细
-#### Placement Center
+### Placement Center
 > 目标： Placement Center 集群模式稳定运行、压测性能、完善监控指标
 
-详细工作：
+#### feat
+1. 可观测
+- 添加 Placement Center 的监控指标
+
+#### pref
 1. 完善集群能力，能运行稳定的集群模式
-   1. 集群模式下，GRPC 提供的接口稳定运行
-   2. 集群模式下，Leader 切换，GRPC 提供的接口稳定运行
-   3. 集群模式下，Leader 切换，非 Leader 节点的 Controller 暂停，Leader 节点运行 Controller
+   - 集群模式下，GRPC 提供的接口稳定运行
+   - 集群模式下，Leader 切换，GRPC 提供的接口稳定运行
+   - 集群模式下，Leader 切换，非 Leader 节点的 Controller 暂停，Leader 节点运行 Controller
 2. 压测 Placement Center 服务的性能
-3. 添加 Placement Center 的监控指标
 
-#### Robust MQTT
+### Robust MQTT
 > 目标：完成第一阶段，RobustMQ MQTT 集群模式稳定运行。优化当前功能代码、完善测试用例、增加部分功能。
 
-集群模式：
-1. Robust MQTT 多节点模式稳定运行
-2. 集群模式下docker 多节点运行
-3. 压测 MQTT TCP 的性能，并完善
+#### feat
+MQTT
+1. 离线消息
+   - 支持Journal
+   - 支持MySQL
+   - 支持Redis
+2. 数据集成
+   - 数据集成框架实现
+   - 支持Kafka
+3. Schema
+   - 框架实现
+4. 订阅
+   - 订阅流程优化， 无订阅自动丢弃消息
+   - 自动订阅
+5. 可观测
+   - 完善Metrics
+   - 接入otel
+6. 限流模块开发（请求数、连接数、流量等等）
+7. other
+   - 连接抖动
+
+DashBoard
+1. 完成Dashboard的框架搭建
+2. 完成Dashboard和MQTT Broker的Admin相关接口的联动
 
-测试用例：
+#### test
 1. 完善发布相关代码的单元测试
 2. 完善订阅相关代码的单元测试
 
-功能：
-1. 订阅流程优化，无订阅自动丢弃消息，支持离线消息
-2. 离线消息支持Journal
-3. 离线消息支持 MySQL
-4. 离线消息支持 Redis
-5. MQTT 数据集成框架实现
-6. MQTT 数据集成支持 Kafka
-7. MQTT 支持 Schema 框架实现
-8. 自动订阅
-9. 连接抖动
-10. 完善 Metrics
-11. 接入opentelemetry
-12. 限流模块开发（请求数、连接数、流量等等）
-13. Auth 模块完善
+#### pref
+集群模式：
+1. Robust MQTT 多节点模式稳定运行
+2. 集群模式下docker 多节点运行
+3. 压测 MQTT TCP 的性能，并完善
+4. Auth模块内容完善
 
-Cli(命令行)：
+Cli:
 1. 完善命令行输出内容的统一格式
-2. 完善 MQTT 相关 Admin 接口和能力
-
-Dashboard:
-1. 完成 Dashboard 的框架搭建
-2. 完成 Dashboard 和 MQTT Broker 的 Admin 相关接口联动
+2. 完善MQTT相关Admin接口和能力
 
-#### Journal Engine
+### Journal Engine
 > 目标：Journal Engine 单节点模式稳定运行
 
-功能:
+#### feat
 1. Journal Engine 第一版核心功能稳定版本代码
 2. 单机模式核心流程完善
    1. 数据读写
@@ -73,10 +82,10 @@ Dashboard:
 4. 稳定的单机模式运行
 5. 设计多副本的 ISR 模式
 
-#### Storage Adapter
+### Storage Adapter
 > 目标：支持 Journal Engine、MySQL、Redis，探索支持远程对象存储(比如 Aws S3)
 
-功能：
+#### feat
 1. 支持 Journal
 2. 支持 MySQL
 3. 支持 Redis
diff --git a/src/journal-server/src/core/error.rs b/src/journal-server/src/core/error.rs
index 343d8fba0..b9e9c001e 100644
--- a/src/journal-server/src/core/error.rs
+++ b/src/journal-server/src/core/error.rs
@@ -59,10 +59,10 @@ pub enum JournalServerError {
     ShardNotExist(String),
 
     #[error("No Segment is available for Shard {0}")]
-    NotAvailableSegmets(String),
+    NotAvailableSegments(String),
 
     #[error("Shard {0} Not Active, is triggering the creation of an active Segment")]
-    NotActiveSegmet(String),
+    NotActiveSegment(String),
 
     #[error("segment {0} does not exist")]
     SegmentNotExist(String),
@@ -118,8 +118,8 @@ pub fn get_journal_server_code(e: &JournalServerError) -> String {
         JournalServerError::ParseIntError(_) => "ParseIntError".to_string(),
         JournalServerError::RequestBodyNotEmpty(_) => "RequestBodyNotEmpty".to_string(),
         JournalServerError::ShardNotExist(_) => "ShardNotExist".to_string(),
-        JournalServerError::NotAvailableSegmets(_) => "NotAvailableSegmets".to_string(),
-        JournalServerError::NotActiveSegmet(_) => "NotActiveSegmet".to_string(),
+        JournalServerError::NotAvailableSegments(_) => "NotAvailableSegments".to_string(),
+        JournalServerError::NotActiveSegment(_) => "NotActiveSegment".to_string(),
         JournalServerError::SegmentNotExist(_) => "SegmentNotExist".to_string(),
         JournalServerError::NotFoundConnectionInCache(_) => "NotFoundConnectionInCache".to_string(),
         JournalServerError::SegmentStatusError(_, _) => "SegmentStatusError".to_string(),
diff --git a/src/journal-server/src/handler/data.rs b/src/journal-server/src/handler/data.rs
index c4f4f7483..094743776 100644
--- a/src/journal-server/src/handler/data.rs
+++ b/src/journal-server/src/handler/data.rs
@@ -179,7 +179,7 @@ impl DataHandler {
             {
                 segment.segment_seq
             } else {
-                let e = &JournalServerError::NotActiveSegmet(shard_iden);
+                let e = &JournalServerError::NotActiveSegment(shard_iden);
                 meta_list.push(FetchOffsetShardMeta {
                     error: Some(JournalEngineError {
                         code: get_journal_server_code(e),
diff --git a/src/journal-server/src/handler/shard.rs b/src/journal-server/src/handler/shard.rs
index f3e81298e..d43ee50e3 100644
--- a/src/journal-server/src/handler/shard.rs
+++ b/src/journal-server/src/handler/shard.rs
@@ -130,7 +130,7 @@ impl ShardHandler {
                 // Active Segment does not exist, try to update cache.
                 // The Active Segment will only be updated if the Segment is successfully created
                 load_metadata_cache(&self.cache_manager, &self.client_pool).await;
-                return Err(JournalServerError::NotActiveSegmet(shard.name()));
+                return Err(JournalServerError::NotActiveSegment(shard.name()));
             };
 
             // Try to transition the Segment state
@@ -148,7 +148,7 @@ impl ShardHandler {
 
             if segments.is_empty() {
                 load_metadata_cache(&self.cache_manager, &self.client_pool).await;
-                return Err(JournalServerError::NotAvailableSegmets(raw.shard_name));
+                return Err(JournalServerError::NotAvailableSegments(raw.shard_name));
             };
 
             let mut resp_shard_segments = Vec::new();
diff --git a/src/mqtt-broker/src/handler/cache.rs b/src/mqtt-broker/src/handler/cache.rs
index 28ae7f694..220d7d331 100644
--- a/src/mqtt-broker/src/handler/cache.rs
+++ b/src/mqtt-broker/src/handler/cache.rs
@@ -66,7 +66,7 @@ pub struct MetadataChangeData {
 
 #[derive(Clone, Serialize, Deserialize)]
 pub struct ConnectionLiveTime {
-    pub protobol: MqttProtocol,
+    pub protocol: MqttProtocol,
     pub keep_live: u16,
     pub heartbeat: u64,
 }
diff --git a/src/mqtt-broker/src/handler/keep_alive.rs b/src/mqtt-broker/src/handler/keep_alive.rs
index 173b1de84..0e5de7a39 100644
--- a/src/mqtt-broker/src/handler/keep_alive.rs
+++ b/src/mqtt-broker/src/handler/keep_alive.rs
@@ -197,7 +197,7 @@ impl ClientKeepAlive {
                 }
             } else {
                 let live_time = ConnectionLiveTime {
-                    protobol: MqttProtocol::Mqtt5,
+                    protocol: MqttProtocol::Mqtt5,
                     keep_live: connection.keep_alive,
                     heartbeat: now_second(),
                 };
diff --git a/src/mqtt-broker/src/handler/mqtt.rs b/src/mqtt-broker/src/handler/mqtt.rs
index 8ec6d4f20..9e9a02e92 100644
--- a/src/mqtt-broker/src/handler/mqtt.rs
+++ b/src/mqtt-broker/src/handler/mqtt.rs
@@ -226,7 +226,7 @@ where
         }
 
         let live_time = ConnectionLiveTime {
-            protobol: self.protocol.clone(),
+            protocol: self.protocol.clone(),
             keep_live: connection.keep_alive as u16,
             heartbeat: now_second(),
         };
@@ -844,7 +844,7 @@ where
         };
 
         let live_time = ConnectionLiveTime {
-            protobol: self.protocol.clone(),
+            protocol: self.protocol.clone(),
             keep_live: connection.keep_alive as u16,
             heartbeat: now_second(),
         };
diff --git a/src/placement-center/src/journal/controller/gc.rs b/src/placement-center/src/journal/controller/gc.rs
index 37bac49c1..ab7ce9ad0 100644
--- a/src/placement-center/src/journal/controller/gc.rs
+++ b/src/placement-center/src/journal/controller/gc.rs
@@ -29,7 +29,7 @@ use protocol::journal_server::journal_inner::{
 
 use crate::core::cache::PlacementCacheManager;
 use crate::journal::cache::JournalCacheManager;
-use crate::journal::services::segmet::{
+use crate::journal::services::segment::{
     sync_delete_segment_info, sync_delete_segment_metadata_info, update_segment_status,
 };
 use crate::journal::services::shard::{
diff --git a/src/placement-center/src/journal/services/mod.rs b/src/placement-center/src/journal/services/mod.rs
index 9c308d0d5..45f6f4899 100644
--- a/src/placement-center/src/journal/services/mod.rs
+++ b/src/placement-center/src/journal/services/mod.rs
@@ -12,5 +12,5 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-pub mod segmet;
+pub mod segment;
 pub mod shard;
diff --git a/src/placement-center/src/journal/services/segmet.rs b/src/placement-center/src/journal/services/segment.rs
similarity index 100%
rename from src/placement-center/src/journal/services/segmet.rs
rename to src/placement-center/src/journal/services/segment.rs
diff --git a/src/placement-center/src/journal/services/shard.rs b/src/placement-center/src/journal/services/shard.rs
index 0aae50729..8991fcc55 100644
--- a/src/placement-center/src/journal/services/shard.rs
+++ b/src/placement-center/src/journal/services/shard.rs
@@ -23,7 +23,7 @@ use protocol::placement_center::placement_center_journal::{
     CreateShardReply, CreateShardRequest, DeleteShardReply, DeleteShardRequest,
 };
 
-use super::segmet::{
+use super::segment::{
     build_segment, sync_save_segment_info, sync_save_segment_metadata_info, update_segment_status,
 };
 use crate::core::cache::PlacementCacheManager;
diff --git a/src/placement-center/src/server/grpc/service_journal.rs b/src/placement-center/src/server/grpc/service_journal.rs
index 7f7f53e3d..97b65b72b 100644
--- a/src/placement-center/src/server/grpc/service_journal.rs
+++ b/src/placement-center/src/server/grpc/service_journal.rs
@@ -30,7 +30,7 @@ use crate::core::cache::PlacementCacheManager;
 use crate::core::error::PlacementCenterError;
 use crate::journal::cache::JournalCacheManager;
 use crate::journal::controller::call_node::JournalInnerCallManager;
-use crate::journal::services::segmet::{
+use crate::journal::services::segment::{
     create_segment_by_req, delete_segment_by_req, update_segment_meta_req,
     update_segment_status_req,
 };


Test patch: