1. Architecture
Domain Tool
  • Tổng quan
  • Business | Logic
    • Admin Business Logic
    • Worker & Automation Business
    • Integration & Reliability Business
    • API INTERFACE & TASK MANAGEMENT
    • SYSTEM BUSINESS OVERVIEW
  • Project
    • ADMIN
      • Tổng quan
      • Architecture
        • Database Schema
        • System Architecture
        • Code Structure
      • Deployment
        • Local
        • Staging
        • Product
      • Hướng dẫn sử dụng
        • Tổng quan
        • Đăng nhập
        • Kiểm tra tự động
        • Kiểm tra thủ công
        • Xếp hạng thủ công
        • Xác nhận kiểm tra
        • Xếp hạng tự động
        • Quản lý từ khóa xếp hạng
        • Kiểm tra whitelist
        • Quản lý từ khóa
        • Truy vết tên miền
        • Quản lý volume từ khóa
        • Kiểm tra domain sở hữu
        • Lịch sử check domain
        • Kiểm tra và view source
        • Kiểm tra thương hiệu tên miền
        • Quản lý người dùng
        • Server
    • API
      • Tổng quan
      • Architecture
        • Database Schema
        • System Architecture
        • Code Structure
      • Deployment
        • Staging
        • Product
        • Local
      • API Interface
        • Public API
          • Xác thực
            • login
            • refresh token
          • Thông tin đăng nhập
            • get current user
            • changePasswordUser
          • Quản lý người dùng
            • getUserList
            • createUser
            • getUserItem
            • updateUser
            • deleteUser
            • updateActive
            • Update FCM Token
          • Quản lý từ khóa
            • Get list of Keywords
            • createKeyword
            • getKeywordItem
            • updateKeyword
            • deleteKeyword
            • deleteKeyword
            • totalKeywordBranchGroup
          • Quản lý Proxy
            • Get all Proxies
            • createProxy
            • getProxyItem
            • updateProxy
            • deleteProxy
            • getActiveProxyList
          • Branch
            • getBranchList
            • createBranch
            • getBranchItem
            • updateBranch
            • deleteBranch
          • Check Brand Domain Histories
            • Get list of Check Brand Domain Histories
            • export Check Brand Domain Histories Data
            • checkBrandDomainHistoriesCopy
            • Import data from Excel
            • exportSampleImportFile
          • Check Confirm
            • List Check Confirms
            • Create Check Confirm
            • Bulk create Check Confirms
            • Show Check Confirm
            • Approve or update confirm detail
            • Delete Check Confirm
            • Approve Check Confirm
            • Approve or Reject Check Confirm
            • List approvers
          • Check Owned Domain
            • Check owned domain
          • Check View Source
            • List current user's check view source histories
            • Check view source for domains
            • Delete all histories of current user
          • Tên Miền Công Ty
            • Get a list of company domains
            • Create a new company domain
            • Get a specific company domain
            • Update a specific company domain with tags
            • Delete a specific company domain
            • Import Whitelist Domains from Excel
            • deleteBulkWhitelistDomain
            • Delete company domains by tag ID
          • Xuất dữ liệu excel
            • Export company domains
            • autoCheckDomainRdrExport
            • exportExcelHistoryCheck
            • exportExcelHistoryRecord
            • autoCheckHistoryDomainRecordExport
            • AutoCheckHistoryDomainCheckExport
            • export Keyword Data
            • autoCheckKeywordExport
            • exportKeywordVolumes
            • exportTrackingDomain
            • exportExcelManualRankingKeywordHistory
            • exportExcelManualSessionHistoryCheck
            • exportExcelRankingDomainHistory
            • exportCompareProxies
            • export Ranking Keyword Data
            • autoCheckRankingKeywordExport
            • exportSampleImportFile
            • exportExcelRankingKeywordHistory
            • exportExcelRankingHistory
            • exportExcelDomainRankingHistory
            • exportExcelWhiteListDomainBlock
            • WhitelistBlockExportSampleImportFile
            • exportSampleImportFile
            • ExportWhitelistByTag
          • Copy
            • Copy company domains
            • autoCheckDomainRdrCopy
            • autoCheckHistoryDomainRecordCopy
            • autoCheckHistoryDomainCheckCopy
            • autoCheckKeywordCopy
            • copyKeywordVolumes
            • copyTrackingDomain
            • copyManualRankingKeywordHistory
            • copySessionHistory
            • copySessionHistory
            • manualUploadFileCopy
            • copyRankingDomainHistory
            • autoCheckRankingKeywordCopy
            • copyRankingKeywordHistory
            • copyRankingHistory
            • copyWhiteListDomainBlock
            • copyWhitelistByTag
          • Nhà cung cấp proxy
            • getDataUsageHistory
            • getProxyProviderList
            • createProxyProvider
            • getProxyProviderItem
            • updateProxyProvider
            • deleteProxyProvider
            • updateSortProxyProvider
            • getProviderProxyCombine
            • createProxyProvider
            • detailProviderProxyCombine
            • updateProxyProvider
            • deleteProviderProxyCombine
          • Quản lý Domain
            • getDomainList
            • createDomain
            • getDomainItem
            • updateDomain
            • deleteDomain
          • Chạy thủ công
            • Run Manual Domain
            • Run Manual Check Domain
            • Run Retry Record Domain
            • Run Retry check Domain
            • Run Manual Domain By Type
            • Run Manual Keyword
          • Domain Check Redirect
            • createDomainCheckRDR
            • getDomainCheckRDRItem
            • updateDomainCheckRDR
            • deleteDomainCheckRDR
            • createHistoryDomainCheck
            • updateHistoryDomainCheck
            • deleteHistoryDomainCheck
            • getListWebByKeyword
            • getListAppByKeyword
            • getListAdsByKeyword
            • getDomainCheckRDRList
          • Quản lý summary
            • Get Domain Wiki Statistics
            • Get Domain Wiki Details
            • Export Domain Wiki Data
            • Copy Domain Wiki List
            • Get Domain Wiki Chart Data
            • Get Summaries
            • Get Auto Summaries
            • Get ranking Summaries
          • External API
            • Create external record domain task
          • Flow
            • stop current flow search domain
            • start current flow search domain
            • get metric flow
            • Get domain RDR processing metrics
            • Get keyword processing metrics
            • Get status auto
          • Group
            • getGroupList
            • createGroup
            • getGroupItem
            • updateGroup
            • deleteGroup
          • Lấy lịch sử check domain
            • getHistoryDomainCheckList
            • getHistoryDomainRecordList
            • getHistoryDomainCheckItem
            • getHistoryDomainRecordItem
            • getHistoryDomainChart
            • getHistoryDomainRecordListV2
          • Ranking Keyword
            • setTimeToRunAutoKeyword
            • postRankingDomainHistory
            • compareProxiesDomainHistory
            • compareProxiesDomainHistoryCopy
            • getChartRankingDomainHistory
            • restartRankingDomainHistory
            • Get list of Ranking Keywords
            • createRankingKeyword
            • getRankingKeywordItem
            • updateRankingKeyword
            • deleteRankingKeyword
            • deleteRankingKeyword
            • totalRankingKeywordBranchGroup
            • Get keyword ranking metric
            • retryRankingKeyword
            • Update Order
            • Import data from Excel
            • Update Order by filter
            • deleteAllRankingKeyword
            • getRankingKeywordHistory
            • setTimeToRunAutoRanking
            • getTimeRunAutoRanking
            • Get ranking group list
          • Quản lý Keyword volume
            • 8ceaf215c302596b08d25b1e12e7ab45
            • Get maximum search volume
          • Quản lý Activities
            • getLogs
            • getLogs
            • trackingDomain
          • Manual Ranking Keyword
            • Get manual ranking keyword histories
            • Get manual ranking keyword history metric
            • GetJsonFileRanking
            • Get ranking group list
          • Quản lý Manual
            • Get list of Manual session domain
            • create manual session domain
            • Get Manual session domain
            • Update list manual session history by manual_sessions_id
            • deleteSession
            • Get list session history
            • Update manual session history by id
            • deleteSessionHistory
            • Get process of Process Manual session domain
            • Get session histories
            • Get statistics session history records
            • Get detailed session history records
            • Get Manual upload files
            • Create Manual upload files
            • Delete Manual upload files
            • deleteBulkManualUploadFiles
          • Ranking Branch
            • getRankingBranchList
            • createRankingBranch
            • getRankingBranchItem
            • updateRankingBranch
            • deleteRankingBranch
          • Ranking Group
            • getRankingGroupList
            • createRankingGroup
            • detailRankingGroup
            • updateRankingGroup
            • deleteRankingGroup
          • Reported Domains
            • getReportedDomainList
            • createReportedDomain
            • getReportedDomainItem
            • updateReportedDomain
            • deleteReportedDomain
            • deleteReportedDomain
            • deleteBulkReportedDomain
          • SearchEngine
            • getSearchEngineList
            • createSearchEngine
            • getSearchEngineItem
            • updateSearchEngine
            • deleteSearchEngine
          • Quản lý cụm Server
            • getServerList
            • createServer
            • getServerItem
            • updateServer
            • deleteServer
          • Statistics
            • getStatistics
          • Tag
            • getTagList
            • createTag
            • getTagItem
            • updateTag
            • deleteTag
            • deleteBulkTag
          • Webhook
            • Execute updateAfterRecordDomain action
            • Execute updateAfterRecordDomain action
            • Execute updateAfterRecordDomain action
            • Handle check confirm capture webhook
            • Execute updateAfterRecordDomain action
            • Execute externalRecordDomainSuccess action
            • Execute updateAfterRecordDomain action
            • Execute updateAfterRecordDomain action
            • Execute updateAfterCheckRankingDomain action
            • Execute updateDomainSearchRanking action
            • Execute updateDomainSearchRankingManual action
          • Quản lý whitelist domain block từ hệ thống
            • getWhiteListDomainBlockApiList
            • createWhiteListDomainBlockApi
            • getWhiteListDomainBlockApiItem
            • updateWhiteListDomainBlockApi
            • deleteWhiteListDomainBlockApi
            • deleteBulkWhiteListDomainBlockApi
          • Quản lý whitelist domain
            • getWhitelistDomainList
            • createWhitelistDomain
            • getWhitelistDomainList
            • getWhitelistDomainItem
            • updateWhitelistDomain
            • deleteWhitelistDomain
            • deleteWhitelistDomain
            • Import Whitelist Domains from Excel
            • deleteBulkWhitelistDomain
    • Tool Check
      • Tổng quan
      • Architecture
        • Database Schema
        • System Architecture
        • Code Structure
      • Deployment
        • Local
        • Staging
        • Product
      • API Interface
        • Public API
          • Public API
    • Tool Record
      • Tổng quan
      • Architecture
        • Database Schema
        • System Architecture
        • Code Structure
      • Deployment
        • Local
        • Staging
        • Product
      • API Interface
        • Public API
          • Task System
            • Get All Tasks
            • Create Task (List)
            • Create Task (Single)
            • Update Task
            • Delete Tasks
            • Count Processing Tasks
            • Get System Logs
            • Send single Task to Webhook
            • Send multiple Tasks to Webhooks
          • System Info
            • Root Details
            • Health Check
  1. Architecture

System Architecture

KIẾN TRÚC HỆ THỐNG: ADMIN FRONTEND (SYSTEM ARCHITECTURE)#

Dự án Admin Frontend của hệ thống Check Domain được thiết kế theo mô hình ứng dụng trang đơn Single Page Application (SPA). Hệ thống áp dụng bộ tiêu chuẩn Enterprise Pattern hiện đại nhất của hệ sinh thái Vue, đảm bảo hiệu suất cao, khả năng mở rộng tốt và trải nghiệm người dùng (UX) mượt mà.

1. Công Nghệ Cốt Lõi (Core Tech Stack)#

Hệ thống được xây dựng trên nền tảng các công nghệ tiên tiến nhất:
Framework chính: Vue 3 – Áp dụng hoàn toàn kiến trúc Composition API và cú pháp <script setup> giúp code gọn gàng, tái sử dụng logic (Composables) dễ dàng.
Build Tool: Vite 5.x – Trình đóng gói thế hệ mới thay thế Webpack, cung cấp tốc độ khởi động server tức thì và HMR (Hot Module Replacement) siêu tốc trong quá trình phát triển.
Ngôn ngữ: TypeScript (~5.5.2) – Bắt buộc ép kiểu chặt chẽ cho toàn bộ quy trình luân chuyển dữ liệu, Request/Response API, giúp phát hiện lỗi ngay từ lúc viết code (Compile-time).
UI Framework & Styling: * Naive UI: Cung cấp các Component lõi phức tạp (Table, Modal, Form...).
Tailwind CSS 3.4 & Sass: Hệ thống Utility-first CSS giúp linh hoạt tuỳ biến layout, thiết kế đáp ứng (Responsive) nhanh chóng.
Data Visualization: Tích hợp Chart.js và thư viện bọc vue-chartjs để trực quan hóa dữ liệu thống kê trên Dashboard.

2. Quản Lý Trạng Thái Toàn Cục (Global State Management)#

Thay vì sử dụng Vuex (đã cũ), dự án áp dụng Pinia làm trung tâm quản lý trạng thái (State Management) với các ưu điểm vượt trội:
Cấu trúc nhẹ & Hỗ trợ TS tốt hơn: Pinia loại bỏ mutations, chỉ giữ lại state, getters, và actions, giúp luồng dữ liệu đơn giản hơn.
Lưu trữ bền vững (Persisted State): Tích hợp module pinia-plugin-persistedstate. Công cụ này tự động hóa việc đồng bộ các trạng thái quan trọng (như accessToken, user profile, theme mode) xuống localStorage của trình duyệt. Nhờ đó, người dùng không bị mất phiên đăng nhập khi tải lại trang (F5).

3. Tầng Giao Tiếp Mạng (Network & API Layer)#

Toàn bộ HTTP Request giao tiếp với Server Backend được quản lý tập trung qua một Singleton Axios Class (tại src/configs/axios.ts). Đây là tầng kiến trúc thông minh nhất của dự án với cơ chế Interceptor mạnh mẽ:

A. Request Interceptor (Xử lý trước khi gửi)#

Tự động gắn định danh: Tự động đính kèm header Authorization: Bearer <TOKEN> (lấy từ Pinia AuthStore) vào mọi request.
White-list: Bỏ qua quy tắc kiểm duyệt token đối với các API định danh cơ bản như /auth/login, /auth/refresh.

B. Cơ Chế Token Refresh Queueing (Nổi bật#

Đây là giải pháp nâng cao giúp trải nghiệm người dùng (UX) không bao giờ bị gián đoạn (Silent Refresh):
1.
Khi Axios phát hiện token sắp hết hạn (hoặc nhận lỗi Exired từ API), nó lập tức tạm treo (Queue) tất cả các request mới mà người dùng vừa thao tác.
2.
Hệ thống âm thầm gọi một API chạy ngầm (/auth/refresh) để xin cấp lại Token mới từ Backend.
3.
Khi nhận được Token mới, Axios cập nhật lại Header và giải phóng (Resolve) toàn bộ hàng đợi Request đang bị treo.
👉 Kết quả: Người dùng vẫn thao tác bình thường mà không hề nhận ra token vừa được làm mới, hoàn toàn không bị văng ra màn hình đăng nhập.

C. Response Interceptor (Xử lý khi nhận kết quả)#

Tự động phân tích mã lỗi HTTP trả về.
Nếu API quăng lỗi 401 Unauthorized mức độ sâu (lỗi không thể refresh hoặc tài khoản bị khóa), hệ thống sẽ ngay lập tức kích hoạt authStore.logout() để dọn dẹp bộ nhớ và điều hướng người dùng trở ra màn hình đăng nhập.

4. Tối Ưu Hóa Trình Biên Dịch (Auto-Import Optimization)#

Để giữ cho mã nguồn (Codebase) luôn sạch sẽ và giảm thiểu thao tác lặp lại cho Developer, kiến trúc Vite được tích hợp các Plugin đặc quyền:
unplugin-auto-import: Tự động chèn (inject) các method phổ biến của Vue (ref, reactive, computed, onMounted,...) vào môi trường toàn cục.
unplugin-vue-components: Tự động nhận diện và đăng ký các UI Component (của Naive UI hoặc Custom Component).
👉 Nhờ kiến trúc này, Developer có thể gọi trực tiếp các hàm và Component vào file .vue để sử dụng ngay mà không cần phải viết những dòng import ... from ... dài dòng ở đầu mỗi file.
Modified at 2026-03-28 02:43:46
Previous
Database Schema
Next
Code Structure
Built with