Skip to content

ĐẶC TẢ CÁC USE CASE - SYSTEM ADMINISTRATION (ADMIN)

Tài liệu này mô tả các use case thuộc nhóm Quản trị hệ thống (System Administration). Admin có quyền quản lý các thông số hệ thống (trọng số AI), quản lý danh mục kỹ năng (skills) dùng chung, và quản lý người dùng toàn cục.


UC_ADMIN_01: Configure System Parameters (Cấu hình thông số hệ thống)

Mô tả

Admin cấu hình các thông số hệ thống được lưu trong bảng system_settings. Các thông số bao gồm trọng số thuật toán AI dùng cho phân công task (heuristic weights), cùng các config khác. Mỗi setting được lưu dạng key-value (key_name, value_json).

Tác nhân chính

  • ad (System Administrator)

Điều kiện tiên quyết

  • Admin đã đăng nhập với role = 'ADMIN'

Điều kiện hậu

  • Cập nhật/thêm bản ghi trong bảng system_settings

Luồng sự kiện chính

BướcAdminHệ thống
1Truy cập trang System Settings
2Query tất cả system settings hiện tại
3Hiển thị form cấu hình: key_name, value_json, description
4Chỉnh sửa giá trị (ví dụ: heuristic.weights)
5Click "Save"
6Validate giá trị (JSON format hợp lệ)
7Upsert bản ghi vào system_settings
8Hiển thị thông báo thành công

Luồng sự kiện phụ

6a. Giá trị JSON không hợp lệ:

  • 6a.1. Hiển thị: "Giá trị phải là JSON hợp lệ"
  • 6a.2. Quay lại bước 3

Ràng buộc nghiệp vụ/Kỹ thuật

  • key_name: VARCHAR, Primary Key
  • value_json: JSONB, chứa giá trị cấu hình
  • description: TEXT, mô tả mục đích setting
  • Authorization: Chỉ ADMIN mới có quyền thao tác

UC_ADMIN_02: View System Skill Directory (Xem danh mục kỹ năng hệ thống)

Mô tả

Admin xem danh sách tất cả kỹ năng (skills) được định nghĩa trong hệ thống. Đây là danh mục kỹ năng dùng chung mà user có thể chọn khi thêm vào profile cá nhân.

Tác nhân chính

  • ad (System Administrator)

Điều kiện tiên quyết

  • Admin đã đăng nhập

Điều kiện hậu

  • Hiển thị danh sách kỹ năng hệ thống

Luồng sự kiện chính

BướcAdminHệ thống
1Truy cập trang Skill Directory
2Query tất cả skills
3Hiển thị danh sách: id, name

Luồng sự kiện phụ

2a. Chưa có skill nào:

  • 2a.1. Hiển thị thông báo "Chưa có kỹ năng nào" và nút "Add Skill"

UC_ADMIN_03: Add System Skill (Thêm kỹ năng hệ thống)

Mô tả

Admin thêm một kỹ năng mới vào danh mục hệ thống. Tên kỹ năng phải duy nhất (UNIQUE constraint trên cột name). Ví dụ: "Java", "React", "Figma".

Tác nhân chính

  • ad (System Administrator)

Điều kiện tiên quyết

  • Admin đã đăng nhập
  • Tên kỹ năng chưa tồn tại

Điều kiện hậu

  • Thêm bản ghi mới vào bảng skills

Luồng sự kiện chính

BướcAdminHệ thống
1Click "Add Skill"
2Hiển thị form: Skill Name (*bắt buộc)
3Nhập tên skill và click "Save"
4Validate: tên không rỗng
5Kiểm tra tên skill chưa tồn tại
6Insert skill mới vào bảng skills
7Hiển thị thông báo thành công, redirect về danh sách

Luồng sự kiện phụ

5a. Tên skill đã tồn tại:

  • 5a.1. Hiển thị: "Kỹ năng này đã tồn tại"
  • 5a.2. Quay lại bước 2

Ràng buộc nghiệp vụ/Kỹ thuật

  • name: VARCHAR, UNIQUE, NOT NULL

UC_ADMIN_04: Edit System Skill (Sửa kỹ năng hệ thống)

Mô tả

Admin chỉnh sửa tên của một kỹ năng hệ thống. Tên mới phải duy nhất. Thay đổi tên skill sẽ tự động áp dụng cho tất cả user đang có skill đó (do user_skills tham chiếu bằng skill_id).

Tác nhân chính

  • ad (System Administrator)

Điều kiện tiên quyết

  • Skill tồn tại trong hệ thống

Điều kiện hậu

  • Cập nhật tên skill trong bảng skills

Luồng sự kiện chính

BướcAdminHệ thống
1Click "Edit" trên skill
2Hiển thị form edit với tên hiện tại
3Thay đổi tên skill và click "Save"
4Validate: tên không rỗng
5Kiểm tra tên mới chưa tồn tại (ngoại trừ skill hiện tại)
6Cập nhật bản ghi
7Hiển thị thông báo thành công

Luồng sự kiện phụ

5a. Tên đã tồn tại:

  • 5a.1. Hiển thị: "Tên kỹ năng đã được sử dụng"
  • 5a.2. Quay lại bước 2

UC_ADMIN_05: Delete System Skill (Xóa kỹ năng hệ thống)

Mô tả

Admin xóa một kỹ năng khỏi danh mục hệ thống. Khi xóa, tất cả bản ghi user_skills liên quan sẽ bị xóa cascade (do FK constraint). Hệ thống hiển thị cảnh báo về số user đang sử dụng skill trước khi xóa.

Tác nhân chính

  • ad (System Administrator)

Điều kiện tiên quyết

  • Skill tồn tại

Điều kiện hậu

  • Xóa bản ghi từ bảng skills
  • CASCADE xóa các bản ghi user_skills liên quan

Luồng sự kiện chính

BướcAdminHệ thống
1Click "Delete" trên skill
2Kiểm tra số user đang sử dụng skill
3Hiển thị xác nhận: "X user đang sử dụng skill này. Bạn có chắc?"
4Click "Confirm"
5Xóa skill (CASCADE đến user_skills)
6Hiển thị thông báo thành công

Luồng sự kiện phụ

4a. Admin hủy xác nhận:

  • 4a.1. Đóng dialog, không thay đổi

UC_ADMIN_06: View Global User List (Xem danh sách người dùng)

Mô tả

Admin xem danh sách tất cả người dùng trong hệ thống, bao gồm thông tin: email, full_name, role (ADMIN/USER), status (AVAILABLE/BUSY/OOO), và current_workload.

Tác nhân chính

  • ad (System Administrator)

Điều kiện tiên quyết

  • Admin đã đăng nhập

Điều kiện hậu

  • Hiển thị danh sách user

Luồng sự kiện chính

BướcAdminHệ thống
1Truy cập trang User Management
2Query tất cả users
3Hiển thị danh sách: name, email, role, status, workload

UC_ADMIN_07: Add System User (Thêm người dùng)

Mô tả

Admin tạo tài khoản người dùng mới trong hệ thống. Admin nhập thông tin: email, full_name, password, role. Password được hash trước khi lưu.

Tác nhân chính

  • ad (System Administrator)

Điều kiện tiên quyết

  • Admin đã đăng nhập
  • Email chưa tồn tại

Điều kiện hậu

  • Tạo bản ghi users mới

Luồng sự kiện chính

BướcAdminHệ thống
1Click "Add User"
2Hiển thị form: Email, Full Name, Password, Role (ADMIN/USER)
3Nhập thông tin và click "Save"
4Validate dữ liệu (email format, password strength)
5Kiểm tra email chưa tồn tại
6Hash password
7Insert user mới (status = AVAILABLE, current_workload = 0)
8Hiển thị thông báo thành công

Luồng sự kiện phụ

5a. Email đã tồn tại:

  • 5a.1. Hiển thị: "Email đã được sử dụng"
  • 5a.2. Quay lại bước 2

Ràng buộc nghiệp vụ/Kỹ thuật

  • Password hashing: bcrypt cost ≥ 10
  • Role: enum('ADMIN', 'USER')
  • Default status: 'AVAILABLE'
  • Default current_workload: 0

UC_ADMIN_08: Edit System User (Sửa thông tin người dùng)

Mô tả

Admin chỉnh sửa thông tin người dùng: full_name, email, role, status. Admin không thể thay đổi password của user (user tự đổi qua Reset Password).

Tác nhân chính

  • ad (System Administrator)

Điều kiện tiên quyết

  • User tồn tại

Điều kiện hậu

  • Cập nhật thông tin user

Luồng sự kiện chính

BướcAdminHệ thống
1Click "Edit" trên user
2Query thông tin user hiện tại
3Hiển thị form edit: full_name, email, role, status
4Chỉnh sửa thông tin và click "Save"
5Validate dữ liệu
6Kiểm tra email unique (nếu thay đổi)
7Cập nhật bản ghi, set updated_at = NOW()
8Hiển thị thông báo thành công

Luồng sự kiện phụ

6a. Email đã tồn tại:

  • 6a.1. Hiển thị: "Email đã được sử dụng bởi tài khoản khác"
  • 6a.2. Quay lại bước 3

UC_ADMIN_09: Delete System User (Xóa người dùng)

Mô tả

Admin xóa tài khoản người dùng khỏi hệ thống. Khi xóa, tất cả dữ liệu liên quan bị xóa cascade: user_skills, project_members, comments, notifications, chat_sessions. Admin không thể xóa tài khoản chính mình.

Tác nhân chính

  • ad (System Administrator)

Điều kiện tiên quyết

  • User tồn tại
  • Không phải tài khoản admin đang đăng nhập

Điều kiện hậu

  • Xóa user và cascade dữ liệu liên quan

Luồng sự kiện chính

BướcAdminHệ thống
1Click "Delete" trên user
2Kiểm tra không phải xóa chính mình
3Hiển thị xác nhận: "Xóa user này? Mọi dữ liệu liên quan sẽ bị mất."
4Click "Confirm"
5Xóa user (CASCADE)
6Hiển thị thông báo thành công

Luồng sự kiện phụ

2a. Xóa chính mình:

  • 2a.1. Hiển thị: "Không thể xóa tài khoản đang đăng nhập"
  • 2a.2. Kết thúc

Tổng kết

Use CaseTênRelated Table
UC_ADMIN_01Configure System Parameterssystem_settings
UC_ADMIN_02View System Skill Directoryskills
UC_ADMIN_03Add System Skillskills
UC_ADMIN_04Edit System Skillskills
UC_ADMIN_05Delete System Skillskills, user_skills
UC_ADMIN_06View Global User Listusers
UC_ADMIN_07Add System Userusers
UC_ADMIN_08Edit System Userusers
UC_ADMIN_09Delete System Userusers