# 1.Cấu trúc dự án

### 1.1. Mục tiêu chương

Chương này quy định cấu trúc dự án chuẩn và phạm vi quản lý mã nguồn giữa Core Team và các đơn vị Partner nhằm:

- Đảm bảo tính ổn định của hệ thống
- Tránh xung đột mã nguồn giữa các đơn vị phát triển
- Chuẩn hóa cách tổ chức code trong toàn dự án
- Dễ dàng bảo trì, mở rộng và tích hợp hệ thống

### 1.2. Khái niệm / phạm vi áp dụng

Tài liệu áp dụng cho:

- Tất cả các dự án sử dụng cấu trúc chuẩn của hệ thống
- Core Team (đội phát triển lõi)
- Partner Team (đối tác phát triển module)

Cấu trúc dự án chuẩn:

com.example.demo

 ├── common/ (thành phần dùng chung)

 ├── config/ (cấu hình hệ thống)

 ├── modules/ (các module nghiệp vụ)

 └── DemoApplication.java

#### Ý nghĩa từng khu vực

<div align="left" dir="ltr" id="bkmrk-th%C6%B0-m%E1%BB%A5c-vai-tr%C3%B2-ph%E1%BA%A1m"><table><colgroup><col width="77"></col><col width="261"></col><col width="130"></col></colgroup><tbody><tr><td>Thư mục

</td><td>Vai trò

</td><td>Phạm vi sử dụng

</td></tr><tr><td>common

</td><td>Thành phần dùng chung toàn hệ thống

</td><td>Core quản lý

</td></tr><tr><td>config

</td><td>Cấu hình hệ thống, security, hạ tầng

</td><td>Core quản lý

</td></tr><tr><td>modules

</td><td>Các module nghiệp vụ

</td><td>Core + Partner

</td></tr></tbody></table>

</div>### 1.3. Quy định chính

#### Phân quyền quản lý code

<div align="left" dir="ltr" id="bkmrk-khu-v%E1%BB%B1c-%C4%90%C6%A1n-v%E1%BB%8B-qu%E1%BA%A3n-"><table><colgroup><col width="91"></col><col width="116"></col><col width="167"></col></colgroup><tbody><tr><td>Khu vực

</td><td>Đơn vị quản lý

</td><td>Quyền chỉnh sửa

</td></tr><tr><td>common/\*\*

</td><td>Core Team

</td><td>Partner không được sửa

</td></tr><tr><td>config/\*\*

</td><td>Core Team

</td><td>Partner không được sửa

</td></tr><tr><td>modules/\*\*

</td><td>Core + Partner

</td><td>Được phép phát triển

</td></tr></tbody></table>

</div>#### Quy định bắt buộc

Đối tác KHÔNG được phép sửa trực tiếp:

common/\*\*

config/\*\*

Mọi thay đổi trong các khu vực này phải:

1. Tạo yêu cầu thay đổi (Core Change Request)
2. Được Core Team xem xét
3. Core Team phê duyệt và thực hiện

### 1.4. Cách thực hiện / quy trình

#### Quy trình thay đổi code dùng chung

Bước 1: Partner phát hiện nhu cầu thay đổi  
Bước 2: Tạo ticket với tiêu đề: các phần mềm quản lý công việc liên quan (Jira / Redmine / YouTrack) hoặc nội bộ

\[CORE CHANGE REQUEST\] Thêm field phone vào user\_account

![](https://docs.lifetex.vn/uploads/images/gallery/2026-02/scaled-1680-/embedded-image-8p4jpk77-png.png)

#### Luồng xử lý: 

1. Partner tạo ticket
2. Core Team review
3. Chuyển trạng thái:

<div align="left" dir="ltr" id="bkmrk-tr%E1%BA%A1ng-th%C3%A1i-%C3%9D-ngh%C4%A9a-o"><table><colgroup><col width="108"></col><col width="159"></col></colgroup><tbody><tr><td>Trạng thái

</td><td>Ý nghĩa

</td></tr><tr><td>Open

</td><td>Ticket mới

</td></tr><tr><td>Under Review

</td><td>Core đang đánh giá

</td></tr><tr><td>Approved

</td><td>Đồng ý thay đổi

</td></tr><tr><td>Rejected

</td><td>Từ chối

</td></tr><tr><td>Implemented

</td><td>Core đã code

</td></tr><tr><td>Merged

</td><td>Đã merge vào develop

</td></tr></tbody></table>

</div>Bước 3: Core Team đánh giá:

- Phạm vi ảnh hưởng
- Rủi ro hệ thống
- Tính cần thiết

Bước 4: Nếu hợp lệ:

- Core Team thực hiện thay đổi
- Merge vào nhánh develop

Bước 5: Partner pull code mới về và tiếp tục phát triển

### 1.5. Ví dụ minh họa

#### Trường hợp hợp lệ

Partner cần thêm logic trong module planning:

modules/planning/service/PlanningService.java

![](https://docs.lifetex.vn/uploads/images/gallery/2026-02/scaled-1680-/embedded-image-ewsuqxw7-png.png)

→ Được phép sửa trực tiếp và tạo PR.

#### Trường hợp không hợp lệ

Partner muốn sửa:

common/security/JwtAuthenticationFilter.java

![](https://docs.lifetex.vn/uploads/images/gallery/2026-02/scaled-1680-/embedded-image-jzlx82in-png.png)

→ Không được sửa trực tiếp.

Phải thực hiện:

1. Tạo Core Change Request
2. Chờ Core Team phê duyệt
3. Core Team thực hiện thay đổi

### 1.6. Checklist áp dụng

Trước khi commit hoặc tạo PR, cần kiểm tra:

![](https://docs.lifetex.vn/uploads/images/gallery/2026-02/scaled-1680-/embedded-image-wmafgmm0-png.png)

- Code nằm trong modules/\*\*
- Không sửa common/\*\*
- Không sửa config/\*\*
- PR đã được Core Team review (nếu cần)

<div align="left" dir="ltr" id="bkmrk--15"></div>