1. Architecture
Traffic Tool
  • Traffic Tool Docs
    • Tổng Quan
    • project
      • admin
        • Hướng dẫn sử dung
          • Đăng Nhập & Xác Thực Hai Bước
          • Thống Kê Hệ Thống
          • Thống Kê Hàng Ngày
          • Tìm Kiếm Tự Động
          • Trung Tâm Báo Cáo
          • Quản Lý Tài Khoản
          • Quản Lý Server
          • Quản Lý Proxy
          • Quản Lý Gói Proxy
          • Quản Lý Nhà Cung Cấp Proxy
          • Quản Lý Backup Proxy
          • Quản Lý Tài Khoản Google
      • api + tool
        • Hướng dẫn sử dụng
          • User Guide
          • Setup Guide
        • Bussiness | Logic
          • 1. Thống kê hàng ngày (Daily Statistics)
          • 2. Thống kê hệ thống (System Statistics)
          • 3. Tìm kiếm tự động (Automated Discovery)
          • 4. Trung tâm Báo cáo (Report Center)
          • 5. Quản lý tài khoản (Account Management)
          • 6. Quản lý Hệ thống (System Management)
          • 7. Quản lý tài khoản Google (Google Account Management)
        • Architecture
          • Database Schema
          • System Architecture
          • Code Structure
          • Logs and Monitoring
          • Environment & Configuration
        • Deployment
          • Local
          • Staging
          • Product
  • Traffic Backend API
    • 🔑 Identity & Session
      • Đăng nhập hệ thống (Login)
      • Đăng ký tài khoản mới (Public)
      • Lấy danh sách người dùng (Phân trang)
      • Admin tạo người dùng mới
      • Lấy thông tin cá nhân hiện tại
      • Khởi tạo bảo mật 2FA
      • Xác thực mã OTP
      • Chi tiết người dùng theo ID
      • Cập nhật thông tin người dùng
      • Xóa tài khoản người dùng
      • Đổi mật khẩu
      • Kiểm tra Cấu hình Thông báo Telegram Toàn hệ thống
      • Bật/Tắt Thông báo Telegram Toàn cục
    • 📁 Campaign Management
      • Danh sách Chiến dịch Toàn cầu
      • Khởi tạo Chiến dịch Mới
      • Chi tiết Chiến dịch
      • Cập nhật Chiến dịch
      • Xóa Chiến dịch
      • Tắt/Mở Chiến dịch (Hàng loạt)
      • Dữ liệu Hình mẫu SEO (Negative SEO)
    • ⚙️ Project Mechanics
      • Danh sách Dự án (Projects List)
      • Khởi tạo Kịch bản Mô phỏng
      • Lấy chi tiết cấu hình Dự án
      • Cập nhật Kịch bản chạy
      • Xóa Dự án
      • Chỉnh sửa Hàng loạt (Bulk)
      • Bật/Tắt Dự án
    • 👤 Profile Management
      • Danh sách Vân tay số (Profiles Data)
      • Tạo Hồ sơ Đơn lẻ (Tạo Vân tay mới)
      • Nhập kho Tài khoản Email (Bulk Import)
      • Chi tiết Session/Cookies
      • Chỉnh sửa Hồ sơ/Ghi chú
      • Xóa Vân tay số và Dữ liệu Local
      • Mở khóa Captcha/Trạng thái Blocked
      • Tra cứu Kho Profile Khả dụng
      • Báo cáo Sức khỏe Kho Tài Khoản
    • 🦾 Worker Interface
      • Đăng ký Khởi tạo Node (Handshake)
      • Nhịp Tim Khảo Sát Tình Trạng (Heartbeat)
      • Nhận Cấu hình Bypass & Hệ thống
      • Kéo (PULL) Nhiệm vụ Traffic SEO
      • Báo cáo Sự cố Node (Crash Report)
    • 📊 Report: Execution
      • Kéo Công việc Báo cáo (Worker Pull)
      • Quản lý Giám sát Nhiệm vụ (Task Dashboard)
      • Bắn Lại Báo Cáo Thất Bại (Manual Retry)
    • 📊 Report: Discovery
      • Danh sách Tên miền Chờ Xử Lý (Discovery Pool)
      • Nhập Mục Tiêu Thủ Công (Manual Insert)
      • Kích hoạt Heuristic Scanner (Cào tự động)
      • Chi tiết Bằng Chứng (Evidence Data)
      • Dán nhãn Vi Phạm / Cập nhật Screenshot
      • Loại Bỏ Mục Tiêu
      • Duyệt Yêu Cầu (Approve to Execution)
    • 📊 Report: Platforms Configuration
      • Truy vấn Danh sách Nền tảng Đối tác (Vendor)
      • Tạo Nền tảng Vendor Báo cáo Mới
      • Bật/Tắt Trang báo cáo theo Loại
      • Cập nhật Metadata Trang
      • Xóa Trang Báo Cáo
      • Lấy Cài đặt LLM cho Vendor cụ thể
      • Cập nhật Cài đặt Tạo mẫu LLM
      • Lấy Cấu hình Schema Biểu mẫu cho Vendor
      • Cập nhật Yêu cầu Trường Biểu mẫu
    • 📊 Report: Email Automation
      • Danh sách SMTP/Mailer Server
      • Thêm kết nối SMTP Mới
      • Nhật ký Nhiệm vụ Gửi Mail (Email Log)
      • Phân tích Tỉ lệ Chuyển đổi (Email Delivery Analytics)
    • 🌐 Global Proxies
      • Danh sách Kho Proxy Phân trang (Proxy Pool)
      • Thêm mới Tuyến IP (Bulk Import)
      • Cập nhật Thông tin máy chủ Proxy
      • Xóa Proxy (Thu hồi tài nguyên)
      • Kích hoạt Xoay vòng (Rotate IP) Cưỡng bức
    • 📈 System Intelligence
      • Báo cáo Luồng Bảo mật Hợp nhất (Colossal Report)
      • Bản Đồ Lưu Lượng GeoIP (Heatmap)
    • 🪝 Webhook Integrations
      • Callback Hoàn tất Gói Lưu lượng SEO (Traffic Node)
      • Callback Thông báo Hoàn tất Bắn Report AI
    • Schemas
      • AppError
      • LoginRequest
      • UserResponseDto
      • UserModel
      • CreateUserRequest
      • UpdateUserRequest
      • PagingInfo
      • ProfileModel
      • CreateProfileRequest
      • BulkImportProfileReq
      • UpdateProfileRequest
      • CampaignModel
      • CampaignConfigs
      • CreateCampaignRequest
      • UpdateCampaignRequest
      • BulkUpdateCampaignStatusReq
      • NegativeSeoData
      • CreateProjectRequest
      • UpdateProjectRequest
      • ProjectModel
      • BulkUpdateProjectRequest
      • ProjectAttribute
      • WorkerHandshakeRequest
      • WorkerHandshakeResponse
      • WorkerHeartbeatPayload
      • WorkerGlobalSettings
      • TaskPullRequest
      • WorkerFatalLog
      • TaskModel
      • TaskTrafficType
      • TaskUpdateDto
      • ReportTaskModel
      • ReportTaskResult
      • PCReportResponse
      • SummaryStats
      • DailyStats
      • BrandStats
      • ProfileStats
      • ReportTaskItem
      • ReportSiteItem
      • CreateReportSiteRequest
      • GPTConfig
      • ResponseConfig
      • FieldConfig
      • ReportDomainsResponse
      • ReportDomainItem
      • AddReportDomainRequest
      • UpdateReportDomainRequest
      • BulkUpdateDashboardRequest
      • ProxyModel
      • CreateProxyRequest
      • UpdateProxyRequest
      • SMTPServerConfig
      • EmailTaskLog
      • GeoLocation
  • Traffic Tools V2 API
    • Tasks
      • Lọc và Truy vấn Nhật ký Phiên Duyệt lẻ
      • Get all tasks
      • Nạp Kết Quả Chạy của Puppeteer (Update Callback)
      • Xóa toàn bộ Tasks lẻ
      • Get all tasks
      • Xóa một Task (ID)
    • Group task
      • Đẩy nhóm công việc Traffic theo lô (Batch Pipeline Task Creation)
      • Lấy sơ đồ trạng thái hàng đợi Group Tasks
      • Endpoint /api/task-traffics/
      • Clear/Flush Hàng đợi Group Task (Kill Queue)
      • Endpoint /api/task-traffics/
      • Xóa 1 nhóm nhiệm vụ (Theo ObjectID Mongoose)
      • Parse chuỗi Proxy
    • Test
      • Kiểm tra Proxy hoạt động ngầm
      • Endpoint /api/test
      • Kho Fingerprint Thử Nghiệm
      • Endpoint /api/test/account-stats
      • Endpoint /api/test/session-recommendation
      • Endpoint /api/test/check-browser
      • Endpoint /api/test/clear-browser-sessions
    • Proxies
      • Lấy kho Proxy server
      • Khai báo Pool Tuyến Proxy mới
      • Get all proxies
      • Get all proxies
      • Xóa toàn bộ Proxy
      • Get all proxies
      • Xóa Proxy theo ID
      • Reset lại số đếm tiến trình (Cron Proxy Thread)
    • Report Platforms
      • Submit report to multiple platforms
      • Submit report to specific platform
      • Get available platforms
      • Get platform statistics
      • Health check
    • Reports
      • Create a new report
      • Create a new report
      • Get report by ID
      • Get report by ID
      • Get report statistics
      • Get report groups
      • Get report groups
      • Get report group
      • Add report to group
      • Bulk add reports to group
      • Get report group statistics
      • Get analytics data
      • Get platform success rates
      • Get reports by platform
      • Get reports by group
      • Create test reports in bulk
    • Test Report
      • Test Microsoft report submission
      • Test AdGuard report submission
      • Test Google Ads report submission
      • Test Spamhaus report submission
      • Test ESET report submission
      • Test multi-platform report submission
      • Get available platforms
    • ESET Test
      • Simple test
      • Minimal POST test
      • Generate ESET report content
      • Get sample test data
      • Test form filling
      • Test full form submission
    • Spamhaus Test
      • Simple test
      • Minimal POST test
      • Generate Spamhaus report content
      • Get sample test data
      • Test Spamhaus form filling
      • Test full Spamhaus form submission
    • Report Scheduler
      • Get report scheduler statistics
      • Process ad detection result
      • Submit a scheduled report
      • Start report scheduler
      • Stop report scheduler
      • Get scheduler status
      • Process scheduled reports
      • Test browser session (non-headless)
      • Test report submission (non-headless)
    • Comprehensive Analytics
      • Get comprehensive dashboard analytics
      • Get overview statistics
      • Get brand-wise statistics
      • Get daily statistics
      • Get platform success rates
      • Get account performance
      • Get summary report
    • Search
      • Ra lệnh Máy Lọc Dữ Liệu TOP SEO Hàng Loại (Scraper Engine)
      • Đếm tổng số dòng tìm kiếm (Length)
    • Report Tasks
      • Tạo chiến dịch Report (Auto Spawn 14 tasks)
      • Tạo chiến dịch Report Form hàng loạt (Bulk Abuse Report)
      • Create Direct Report (Từ API hệ thống thay vì Frontend)
      • Tạo Nhiệm Vụ Sinh Email Khiếu nại (Automated Bulk Mail Spam)
      • Worker Pull - Lấy task Báo cáo đang Pending
      • Worker Trả kết quả (Report Status)
      • Danh mục Platfoms & Providers
      • Dashboard Statistic Báo Cáo
      • Force Run Cronjob
    • Monitor
      • Xuất dữ liệu đo đếm Hardware (Telemetry OS Watchdog)
    • Schemas
      • CreateTask
      • UpdateTask
      • CreateTaskGroupRequest
      • CreateProxy
      • CreateSearch
      • ReportTaskCreation
      • CreateEmail
      • CreateMultipleSearchRequest
      • CreateMultipleReportRequest
      • UpdateReportStatusRequest
      • TestProxyRequest
  1. Architecture

Code Structure

Code Structure — Traffic Tools#


Mục lục#

1.
API — Golang Backend
2.
Admin — Vue 3 Frontend
3.
Tools V2 — Bun Worker
4.
Quy tắc đặt tên & Conventions

1. API — Golang Backend#

Root: d:\WinAd Projects\Traffic Tools\api\

Tổng quan cây thư mục#

api/
├── bootstrap/                  # Khởi động ứng dụng
│   ├── routes.go               # Đăng ký tất cả routes HTTP
│   ├── background_services.go  # Khởi động background jobs
│   ├── cron/                   # Cron job setup
│   │   ├── cron.go             # Đăng ký tất cả cron schedules
│   │   ├── health_check_cron.go
│   │   └── clean_log_schedule.go
│   ├── injection/
│   │   └── injection.go        # Dependency Injection container (go.uber/dig)
│   └── socket/
│       └── socket.go           # WebSocket setup (nếu có)
│
├── internal/                   # Business logic theo module (36 modules)
│   ├── [module_name]/
│   │   ├── [module_name].go    # Model struct + constants + enums
│   │   ├── dto/                # Data Transfer Objects (request/response shapes)
│   │   ├── handler/            # HTTP Handler (controller layer)
│   │   │   └── handler.go      # Route registration + handler struct
│   │   ├── service/            # Business logic layer
│   │   │   └── service.go      # Service struct + interface
│   │   ├── repository/         # Database access layer
│   │   │   └── repository.go   # Queries MongoDB/MySQL
│   │   └── cron/               # Module-specific cron jobs (nếu có)
│   └── ...
│
├── pkg/                        # Shared libraries & utilities
│   ├── env.go                  # Environment variable loading
│   ├── api/                    # HTTP client utilities
│   ├── apperror/               # Custom error types & codes
│   ├── cache/                  # Redis cache wrapper
│   ├── database/               # DB connection setup
│   ├── enum/                   # Shared enum definitions
│   ├── excel/                  # Excel export utilities
│   ├── helper/                 # Generic helper functions
│   ├── jwt/                    # JWT generation & validation
│   ├── logger/                 # Logging utilities
│   ├── messages/               # Response message constants
│   ├── middleware/             # HTTP middlewares (auth, admin, jwt)
│   ├── scheduler/              # Cron scheduler wrapper
│   ├── telegram/               # Telegram bot client
│   ├── time/                   # Time utilities & formatting
│   ├── types/                  # Shared type definitions
│   └── validate/               # Request validation helpers
│
├── deploy/
│   └── development/
│       └── Dockerfile          # Docker build config
├── docker-compose.yaml         # Full stack Docker setup
├── Makefile                    # Dev commands (build, run, migrate, seed)
├── go.mod                      # Go module dependencies
├── go.sum                      # Dependency lockfile
└── main.go                     # Application entry point

Chi tiết các Module (internal/)#

Mỗi module theo pattern Model → DTO → Repository → Service → Handler:
ModuleDBMô tả
activity_logMySQLAudit log CRUD operations của users
backup_proxyMongoDBProxy dự phòng, health check tự động
campaignMySQLChiến dịch traffic, export data
coccoc_tokenMongoDBToken quản lý CocCoc Ads, lock/unlock
dashboardMySQL+MongoThống kê tổng hợp cho Admin UI
evidenceMongoDBBằng chứng báo cáo (screenshot, video)
free_proxyMongoDBProxy miễn phí từ GitHub sources
keywordMongoDBTừ khóa SERP tracking
keyword_analyticsMongoDBPhân tích trend từ khóa
keyword_pool_taskMongoDBPool task quét từ khóa song song
keyword_resultMongoDBKết quả SERP cào được
keyword_scheduleMongoDBLịch quét từ khóa
locationMongoDBDanh sách Geolocation
mattermost—Tích hợp thông báo Mattermost
mongodb_cleanupMongoDBDọn dẹp document cũ
monitor—System health monitoring
profilesMongoDBGoogle Account Persona management
projectMySQLDự án Traffic (domain target)
project_detailMySQLThống kê traffic theo giờ
project_settingsMySQLConfig Project-Proxy-Server mapping
proxyMongoDBProxy pool quản lý chính
proxy_ip_logMongoDBHistory IP public sau mỗi lần xoay
proxy_ip_log_detailMongoDBChi tiết log IP per domain
proxy_packagesMongoDBGói Proxy đã mua
proxy_providersMongoDBNhà cung cấp Proxy
reportMongoDB+MySQLReport traffic, email report, dashboard
search_dispatchMongoDBPhân phối Search Task to workers
serverMySQLWorker Server registry
server_hourly_reportMySQLBáo cáo theo giờ từng server
setup_fireMySQLConfig chiến dịch "fire" ads
storageS3File upload/download DigitalOcean
system_settingsMySQLKey-Value config store
taskMongoDBTask traffic điều phối
task_logMongoDBLog ngắn gọn mỗi lượt traffic
userMySQLTài khoản admin, 2FA
webhook—Public webhook endpoints cho Workers

Pattern Module (ví dụ proxy)#

internal/proxy/
├── proxy.go                 # Struct Proxy, ProxyResponse, helper methods
├── dto/
│   ├── create_proxy.go      # CreateProxyRequest struct
│   ├── update_proxy.go      # UpdateProxyRequest struct
│   └── get_list.go          # ListProxyQuery (filters, pagination)
├── handler/
│   ├── handler.go           # ProxyRouter() + Handler struct init
│   ├── create.go            # POST /proxy
│   ├── get_list.go          # GET /proxy
│   ├── get_by_id.go         # GET /proxy/:id
│   ├── update.go            # PUT /proxy/:id
│   ├── delete.go            # DELETE /proxy/:id
│   ├── import.go            # POST /proxy/import
│   ├── export.go            # GET /proxy/export
│   └── bulk_delete.go       # POST /proxy/bulk-delete
├── service/
│   ├── service.go           # Service struct + all business logic
│   ├── import_service.go    # Logic import từ providers
│   └── update_service.go    # Logic cập nhật proxy
├── repository/
│   └── repository.go        # MongoDB CRUD operations
├── cron/
│   └── cron.go              # Proxy rotation cron logic
├── config/                  # Provider-specific configs
└── common/                  # Shared helpers within module

pkg/ — Shared Libraries#

pkg/
├── env.go                   # Khai báo struct Env, load từ os.Getenv
├── middleware/
│   ├── auth.go              # AuthMiddleware: validate JWT + Redis session
│   ├── jwt.go               # JWTMiddleware: parse Bearer token
│   └── admin.go             # AdminMiddleware: kiểm tra role=Admin
├── apperror/
│   ├── errors.go            # AppError struct với Code + Message
│   └── codes.go             # HTTP error codes (400, 401, 403, 404, 500)
├── database/
│   ├── mongodb.go           # MongoDB connection pool setup
│   └── mysql.go             # GORM MySQL connection setup
├── cache/
│   └── redis.go             # Redis client wrapper (get/set/del)
├── jwt/
│   └── jwt.go               # GenerateToken, ParseToken, ValidateClaims
├── telegram/
│   └── telegram.go          # SendMessage, SendErrorAlert
├── excel/
│   └── excel.go             # Apache POI-like Excel generator
└── helper/
    ├── pagination.go        # ParsePage, ParseLimit, CalcOffset
    └── response.go          # Success/Error response formatters

bootstrap/routes.go — Route Structure#

/api
├── [PUBLIC - No Auth]
│   ├── POST /api/user/login
│   ├── POST /api/user/register
│   ├── GET  /api/reset-create-task
│   ├── POST /api/task/request            ← Tools V2 kéo task
│   ├── POST /api/report/request-task     ← Tools V2 kéo report task
│   ├── GET  /api/campaign/reports
│   ├── GET  /api/campaigns/reports
│   ├── GET  /api/servers/reports
│   ├── GET  /api/dashboard/*
│   ├── GET  /api/reports/*
│   ├── GET  /api/evidence/*
│   ├── GET  /api/files/*
│   └── GET  /api/system-settings
│
└── [PROTECTED - JWT Required]
    ├── /api/user/*
    ├── /api/campaign/*
    ├── /api/server/*
    ├── /api/project/*
    ├── /api/project-detail/*
    ├── /api/proxy/*
    ├── /api/backup-proxy/*
    ├── /api/proxy-ip-log/*
    ├── /api/proxy-providers/*
    ├── /api/proxy-packages/*
    ├── /api/profiles/*
    ├── /api/keywords/*
    ├── /api/keyword-analytics/*
    ├── /api/keyword-result/*
    ├── /api/keyword-schedule/*
    ├── /api/setup-fire/*
    ├── /api/task-log/*
    ├── /api/activity-log/*
    ├── /api/server-hourly-report/*
    ├── /api/locations/*
    └── /api/files/*

/webhook [PUBLIC - No Auth - For Workers]
├── POST /webhook/task/update-status      ← Nhận kết quả traffic
├── POST /webhook/task/create-multiple    ← Nhận Task batch
├── POST /webhook/proxy/get-proxy         ← Trả proxy cho workers
├── GET  /webhook/proxy/get-proxy-can-rotate
├── POST /webhook/proxy-rotation-result/:id
├── POST /webhook/proxy/get-backup-proxy
├── GET  /webhook/profile/get-profiles
├── GET  /webhook/profile/get-random-profile
├── GET  /webhook/profile/available
├── POST /webhook/profile/session
├── POST /webhook/profile/session/create
├── POST /webhook/profile/mark-used
├── GET  /webhook/profile/tags
├── POST /webhook/search/clicked-domains
├── GET  /webhook/search/clicked-domains
├── POST /webhook/search/reported-domains
├── POST /webhook/search/thirdparty-callback
├── GET  /webhook/logs
├── DELETE /webhook/logs/clear-content
├── GET  /webhook/check-ip
├── /webhook/report/*                     ← Report task callbacks
├── /webhook/coccoc-token/*               ← CocCoc token operations
└── /webhook/keyword-result/*             ← SERP result callbacks

2. Admin — Vue 3 Frontend#

Root: d:\WinAd Projects\Traffic Tools\admin\

Tổng quan cây thư mục#

admin/
├── src/
│   ├── main.ts                  # Entry point: mount app, init plugins
│   ├── App.vue                  # Root component, router-view
│   │
│   ├── views/                   # Page-level components (màn hình)
│   │   ├── HomeView.vue         # Trang chủ (redirect)
│   │   ├── auth/                # Đăng nhập
│   │   │   └── LoginView.vue
│   │   ├── auth-factor/         # Xác thực 2FA TOTP
│   │   ├── dashboard/           # Dashboard thống kê traffic
│   │   ├── dashboard1/          # Dashboard alternative view
│   │   ├── campain/             # Quản lý Campaigns
│   │   ├── task/                # Quản lý Tasks
│   │   ├── auto-search/         # Từ khóa & SERP tracking
│   │   ├── report-daily/        # Báo cáo hàng ngày
│   │   ├── report-dashboard/    # Dashboard báo cáo report tasks
│   │   ├── server-management/   # Quản lý Worker Servers
│   │   ├── profile-management/  # Quản lý Google Profiles
│   │   ├── user-management/     # Quản lý tài khoản Admin
│   │   ├── location/            # Quản lý Geolocation
│   │   └── errors/              # 404, 403 pages
│   │
│   ├── components/              # UI components tái sử dụng
│   │   ├── BulkActions.vue      # Nút hành động hàng loạt
│   │   ├── block/               # Block-level components
│   │   ├── common/              # Shared components (Table, Modal, Form...)
│   │   ├── header/              # Header navigation
│   │   ├── helper/              # Utility display components
│   │   ├── icon/                # Custom icon components
│   │   ├── pagination/          # Pagination component
│   │   └── progress/            # Progress bar components
│   │
│   ├── stores/                  # Pinia state management
│   │   └── [feature].store.ts   # Store per feature
│   │
│   ├── services/                # API client layer (Axios wrappers)
│   │   └── [feature].service.ts # Service per API module
│   │
│   ├── composables/             # Vue 3 Composition API hooks
│   │   └── use[Feature].ts      # useAuth, usePagination, etc.
│   │
│   ├── router/                  # Vue Router config
│   │   └── index.ts             # Route definitions + guards
│   │
│   ├── layouts/                 # Layout wrappers
│   │   ├── DefaultLayout.vue    # Sidebar + Header layout
│   │   └── AuthLayout.vue       # Login page layout
│   │
│   ├── plugins/                 # Vue plugin setup
│   │   └── naive-ui.ts          # Naive UI theme config
│   │
│   ├── types/                   # TypeScript type definitions
│   │   └── [feature].types.ts
│   │
│   ├── utils/                   # Helper utilities
│   │   └── [util].ts
│   │
│   ├── config/                  # App configuration
│   ├── configs/                 # Feature flags & env configs
│   └── data/                    # Static data / mock data
│
├── public/                      # Static assets (favicon, etc.)
├── index.html                   # HTML entry point
├── vite.config.ts               # Vite build config
├── tsconfig.json                # TypeScript config
├── package.json                 # Dependencies & scripts
├── .env.development             # Dev API URL config
└── .env.production              # Prod API URL config

Chi tiết Views (Pages)#

ViewRouteChức năng
auth/LoginView/loginForm đăng nhập + JWT storage
auth-factor//auth-factorNhập mã TOTP 6 chữ số
dashboard//dashboardBiểu đồ traffic, stats tổng hợp
campain//campaignsCRUD campaigns, danh sách dự án
task//tasksXem Task traffic, filter, reset
auto-search//auto-searchQuản lý từ khóa SERP, xem rank
report-daily//report-dailyExport CSV/Excel báo cáo ngày
report-dashboard//report-dashboardMonitor Report Tasks, sites, profiles
server-management//serversĐăng ký/xóa Worker Server
profile-management//profilesQuản lý Google Account profiles
user-management//usersTạo/xóa Admin accounts
location//locationsDanh sách GPS locations

Luồng Data trong Admin#

View Component
    │
    ├── composable (useFeature.ts)
    │       │
    │       ├── store (Pinia)          ← Global state cache
    │       │
    │       └── service (Axios)        ← Direct API call
    │               │
    │               └── API (Go) :33001
    │
    └── Naive UI Components (NDataTable, NModal, NForm...)

3. Tools V2 — Bun Worker#

Root: d:\WinAd Projects\Traffic Tools\tools_v2\

Tổng quan cây thư mục#

tools_v2/
├── src/
│   ├── index.ts                 # Entry point: Elysia app + all cron setup
│   │
│   ├── api/                     # HTTP API layer (controllers)
│   │   ├── index.ts             # Route group /api aggregator
│   │   ├── task/                # Task CRUD endpoints
│   │   │   ├── task.controller.ts
│   │   │   ├── task.dto.ts      # Elysia `t` schema validation
│   │   │   ├── task.model.ts    # Mongoose schema
│   │   │   └── task.service.ts  # Business logic
│   │   ├── task-group/          # TaskGroup endpoints + main cron
│   │   │   ├── task-group.controller.ts
│   │   │   ├── task-group.cron.ts    # CORE: orchestrates all traffic
│   │   │   ├── task-group.model.ts
│   │   │   ├── task-group.service.ts
│   │   │   ├── task-group.dto.ts
│   │   │   ├── cron/            # Sub-crons
│   │   │   │   └── cleanup-service.ts
│   │   │   └── task-action/     # Task execution logic
│   │   ├── proxy/               # Proxy endpoints + cron
│   │   │   ├── proxy.controller.ts
│   │   │   ├── proxy.cron.ts    # Proxy rotation + webhook
│   │   │   ├── proxy.model.ts
│   │   │   └── proxy.dto.ts
│   │   ├── search/              # SERP search endpoints + cron
│   │   │   ├── search.controller.ts
│   │   │   ├── search.cron.ts
│   │   │   ├── search.model.ts
│   │   │   ├── search.dto.ts
│   │   │   └── cron/
│   │   │       └── webhook-search.cron.ts
│   │   ├── report-tasks/        # Report task endpoints + cron
│   │   │   ├── report-task.controller.ts   # 29KB - full CRUD + batch ops
│   │   │   ├── report-task.cron.ts         # 18KB - execution engine
│   │   │   ├── report-task.model.ts        # 17KB - full Mongoose schema
│   │   │   ├── controller/
│   │   │   │   └── schemas.ts   # Elysia request/response schemas
│   │   │   └── cron/
│   │   │       └── report-task-request.service.ts
│   │   ├── monitor/             # System health monitor endpoint
│   │   ├── screenshot/          # Screenshot API endpoint
│   │   ├── captcha/             # CAPTCHA handling API
│   │   └── test/                # Test proxy/profile endpoints
│   │
│   ├── services/                # Pure business logic (no HTTP)
│   │   ├── ads/                 # Click quảng cáo (Ads flow)
│   │   │   ├── AdsFlowExecutor.ts    # Orchestrates ads click flow
│   │   │   ├── AdsPageInteractor.ts  # DOM interactions on ads page
│   │   │   └── AdsFinder.ts          # Tìm quảng cáo trên SERP
│   │   ├── ai/                  # OpenAI GPT integration
│   │   │   └── openai.service.ts     # GPT content generation for reports
│   │   ├── api/                 # HTTP client to call API (Go)
│   │   │   └── api.service.ts        # Axios client cho callbacks
│   │   ├── behavior/            # Human-like browser behavior
│   │   │   └── human-behavior.ts     # Scroll, hover, random delays
│   │   ├── browser/             # Browser session management
│   │   │   └── browser.service.ts    # Puppeteer launch + config
│   │   ├── captcha/             # CAPTCHA detection & solving
│   │   │   └── captcha.service.ts
│   │   ├── check-proxy/         # Proxy health check
│   │   │   └── check-proxy.service.ts
│   │   ├── domain/              # Domain utilities
│   │   │   └── domain.service.ts     # Extract domain, normalize
│   │   ├── email/               # Email sending
│   │   │   └── email.service.ts      # SMTP/Gmail send
│   │   ├── evidence/            # Evidence collection
│   │   │   └── evidence.service.ts   # Collect proof of actions
│   │   ├── free-proxy/          # Free proxy fetcher
│   │   │   └── free-proxy.service.ts # GitHub proxy list scraper
│   │   ├── google-accounts/     # Google authentication
│   │   │   └── google-account.service.ts
│   │   ├── profiles/            # Profile management
│   │   │   └── profile.service.ts    # Cooldown, assignment, tracking
│   │   ├── proxy/               # Proxy rotation logic
│   │   │   └── proxy.service.ts      # Rotate, assign, health update
│   │   ├── report-tasks/        # Report task execution
│   │   │   ├── browser-report.service.ts  # Browser-based reporting
│   │   │   └── email-report.service.ts    # Email-based reporting
│   │   ├── screenshot/          # Screenshot capture
│   │   │   └── screenshot.service.ts # Puppeteer screenshot + upload
│   │   ├── search/              # SERP scraping
│   │   │   └── search.service.ts     # Parse Google/CocCoc results
│   │   ├── storage/             # DigitalOcean Spaces
│   │   │   └── storage.service.ts    # Upload/delete/get URL
│   │   ├── webhook/             # Outgoing webhook calls
│   │   │   └── webhook.service.ts    # POST results to API
│   │   └── zing-proxy/          # ZingProxy API integration
│   │       └── zing-proxy.service.ts # Fetch proxy list from ZingProxy
│   │
│   ├── utils/                   # Shared utilities
│   │   ├── env.ts               # Central config (loadEnv function)
│   │   ├── logger.ts            # Logger factory
│   │   ├── createElysia.ts      # Elysia instance factory
│   │   ├── error.middleware.ts  # Global error handler
│   │   ├── ip-validation.middleware.ts  # IP allowlist middleware
│   │   ├── browser_manager/     # Puppeteer pool manager
│   │   │   └── browser-manager.ts    # Session pool, concurrency control
│   │   ├── logger/              # Logger implementation
│   │   │   └── logger.service.ts     # File + console logging
│   │   ├── email-name-extractor.ts   # Extract name from email
│   │   ├── country-form-mapper.ts    # Country → form field mapping
│   │   ├── report-type.utils.ts      # Report platform config (21KB)
│   │   ├── smtp-config.utils.ts      # SMTP setup helpers
│   │   ├── oauth2-token-refresh.ts   # Google OAuth2 refresh flow
│   │   └── server-identifier.ts      # Server ID detection
│   │
│   ├── config/
│   │   └── database/
│   │       └── mongodb.config.ts     # Mongoose connection setup
│   │
│   ├── scripts/                 # Utility scripts
│   ├── types/                   # TypeScript type definitions
│   └── index.ts                 # App entry
│
├── docs/                        # Documentation (đây là folder này!)
├── tmp/                         # Temporary scripts
├── storage/                     # Runtime storage
│   └── log/                     # Log files
├── .env                         # Environment variables (manual create)
├── package.json                 # Bun dependencies
├── tsconfig.json                # TypeScript strictmode config
└── bunfig.toml                  # Bun runtime config

Chi tiết key files#

src/index.ts — App Entry Point#

Đây là file khởi động toàn bộ ứng dụng. Nó:
1.
Kết nối MongoDB
2.
Khởi tạo Elysia HTTP server
3.
Đăng ký tất cả API routes
4.
Đăng ký tất cả Cron jobs (task, proxy, search, report)
5.
Lắng nghe port (mặc định 3005)

src/api/task-group/task-group.cron.ts — Core Traffic Engine#

File quan trọng nhất trong Tools V2. Orchestrates toàn bộ luồng traffic:
Pull TaskGroups PENDING từ MongoDB
Gán Proxy
Launch Puppeteer browser session
Phân loại và thực thi: Direct / Organic / Ads / Kill flow
Trả kết quả về API qua webhook

src/utils/report-type.utils.ts — Report Platform Registry#

File 21KB định nghĩa cấu hình chi tiết cho 116+ nền tảng báo cáo (Google SafeBrowsing, PhishTank, Netcraft, CERT...) bao gồm URL form, field mapping, selectors DOM.

src/utils/browser_manager/ — Puppeteer Pool#

Quản lý pool Puppeteer sessions với:
Giới hạn concurrent browsers (BROWSER_LIMIT=100)
Per-process limit (BROWSER_LIMIT_PER_PROCESS)
Session reuse và cleanup

Tools V2 — File Naming Convention#

[module]/
├── [module].controller.ts  # HTTP endpoints (Elysia routes)
├── [module].model.ts       # Mongoose schema definition
├── [module].dto.ts         # Request/response type schemas (Elysia `t`)
├── [module].service.ts     # Data access + business logic
└── [module].cron.ts        # Background job runner

4. Quy tắc đặt tên & Conventions#

API (Golang)#

ItemConventionVí dụ
Packagesnake_casepackage proxy_packages
StructPascalCasetype Proxy struct
InterfacePascalCase có suffixtype Repository interface
FunctionPascalCase (exported) / camelCase (private)func GetList()
ConstantsPascalCase hoặc UPPER_SNAKE_CASECollectionName = "proxies"
Filessnake_case.goget_list_with_pagination.go
Routes/kebab-case/proxy-packages

Admin (Vue 3)#

ItemConventionVí dụ
ComponentsPascalCase.vueBulkActions.vue
ViewsPascalCase + View.vueLoginView.vue
ComposablesuseFeatureName.tsuseAuth.ts
StoresfeatureName.store.tsauth.store.ts
ServicesfeatureName.service.tscampaign.service.ts
Routes/kebab-case/profile-management

Tools V2 (TypeScript)#

ItemConventionVí dụ
Fileskebab-case.tstask-group.cron.ts
ClassesPascalCaseclass TaskGroupService
FunctionscamelCaseasync processTaskGroup()
VariablescamelCaseconst browserManager
Constants (env)UPPER_SNAKE_CASEBROWSER_LIMIT
Mongoose ModelsPascalCaseTaskGroup, Proxy
Elysia schemast.Object({...})inline schema validation

Response Format (API Go)#

// Success
{
  "success": true,
  "message": "Thành công",
  "data": { ... },
  "meta": { "total": 100, "page": 1, "limit": 20 }
}

// Error
{
  "success": false,
  "message": "Không tìm thấy",
  "code": 404,
  "error": "resource_not_found"
}

MongoDB Document Pattern (Tools V2)#

Modified at 2026-03-25 07:00:53
Previous
System Architecture
Next
Logs and Monitoring
Built with