1. Architecture
DATA SPORT
  • DATABASE-SPORT
    • Tổng quan
    • Logic
      • Logic tổng thể
    • Projects
      • Yêu cầu hệ thống
      • Architecture
        • Database
    • Public APi
      • Tổng quan
      • Cài đặt
      • ENV DEV
      • ENV Prod
      • Postman collection
    • Public API v3
      • Tổng quan
      • Cài đặt
    • Cron Make File
      • Tổng quan
  • GOLANG-THESPORT
    • Tổng quan
    • Architecture
      • System
      • Database
      • Source Code
    • Development
      • Local
      • Production
  • GOLANG-API (xe.winfast)
    • Tổng quan
    • Architecture
      • System
      • Database
      • Source Code
    • Development
      • Local
      • Production
  • GOLANG-KSPORT
    • Tổng quan
    • Architecture
      • System
      • Database
      • Source Code
    • Development
      • Production
  • CRONJOB-LARAVEL
    • Tổng quan
    • Logic
      • Logic tổng thể
    • Projects
      • Yêu cầu hệ thống
      • Architecture
        • System
        • Source code
        • Database
      • Development
        • Dev
        • Production
      • Public API
        • Common API
          • League & Cup Profile (Basic)
          • Schedule & Results (Basic)
          • Match Modify Record
          • List of Countries
          • List of Bookmakers
          • Configuration instructions
        • Live animation
          • Configuration instructions
          • Schedule & Results
        • Live Data
          • Livescores for Today
          • Livescores Changes
          • Schedule & Results
          • Schedule Changes
          • Events
          • Stats
          • Corner
          • Lineups
          • Injury
          • Match List of Live Text
          • Live Text
          • Transfer
        • Profile
          • League & Cup Profile
          • Subleague Profile
          • Cup Stage Profile
          • Team Profile
          • Team Profile Copy
          • Team Profile for Search
          • Player Profile
          • Player Profile for Search
          • Referee Profile
          • Teamlist with Player Profile
        • Stats
          • Matches Analysis
          • List of Player Stats (Match)
          • Player Stats (Match)
          • List of Player Stats (League & Cup)
          • Player Stats (League & Cup)
          • League Standing (Get Subleague)
          • League Standing
          • Cup Standing
          • Top Scorer
          • FIFA Ranking
        • Odds (18 bookmakers)
          • Pre-match and In-play Odds (Main)
          • Live Odds Changes (Main)
          • Historical Odds (Main)
          • Future Odds (Main)
          • Pre-match and In-play Odds (All)
          • Live Odds Changes (All)
          • Historical Odds (All)
          • Future Odds (All)
          • European Odds (Halftime)
          • In-play Odds
          • In-play Odds (Halftime)
          • Odd Modify Record
        • European Odds (200+ Bookmakers)
          • European Odds (200+ Bookmakers)
        • Other Odds
          • Outrights
          • First/Last Team To Score (pre-match)
          • Goals Odd/Even (pre-match)
          • Goals Odd/Even (In-play)
          • Number of Goals in Match (pre-match)
          • Number of Goals in Match (In-play)
          • Half Time/Full Time (pre-match)
          • Half Time/Full Time (In-play)
          • Correct Score (pre-match)
          • Correct Score (In-play)
          • Half Time Correct Score (pre-match)
          • Half Time Correct Score (In-play)
          • Handicap Corners (pre-match)
          • Handicap Corners (In-play)
          • Total Corners (pre-match) - Tổng phạt góc trước trận đấu: First Odds
          • Total Corners (In-play) - Tổng số quả phạt góc (Trong trận) - Run Odds
          • Double Chance(pre-match)
          • EuroHandicap(pre-match)
  • GOLANG-WEBSOCKET
    • Tổng Quan
    • Logic
      • Logic tổng thể
    • Projects
      • Yêu cầu hệ thống
      • Architecture
        • System
        • Source code
      • Development
        • Dev
        • Production
      • Public API
        • API
  • LIVEANIMATION-THESPORT
    • Hướng dẫn liveaniamtion thesport
  1. Architecture

Source Code

Cấu trúc thư mục chính#

main.go: Điểm khởi đầu của ứng dụng.
server/: Cấu hình khởi tạo server, đăng ký routes và middlewares.
modules/: Chứa các module tính năng (Auth, Team, User, Schedule...). Mỗi module bao gồm:
domain.go: Định nghĩa cấu trúc dữ liệu và interface.
handler.go: Giao tiếp với HTTP request/response.
usecase.go: Chứa logic nghiệp vụ chính.
routes.go: Định nghĩa các endpoints.
commons/: Chứa các thành phần dùng chung (error handling, logging, pagination, repositories base).
db/:
queries/: Các file .sql chứa câu lệnh truy vấn.
models/: Schema định nghĩa bảng.
*.sql.go: Code Go được generate tự động bởi SQLC.
pkg/: Các thư viện tích hợp bên thứ ba (Cloudinary, Mail, Elasticsearch).
cmd/: Chứa các công cụ dòng lệnh (ví dụ: searchsync để đồng bộ dữ liệu vào ES).

Luồng xử lý (Data Flow)#

Client -> Middleware -> Handler -> Use Case -> Repository (SQLC/GORM) -> Database

3. Cơ Sở Dữ Liệu (Database)#

Hệ thống sử dụng SQLC để đảm bảo tính an toàn và hiệu suất khi thao tác với MySQL.

Các nhóm bảng chính#

Dữ liệu thể thao:
sclass: Thông tin giải đấu.
teams: Thông tin đội bóng.
players: Thông tin cầu thủ.
schedules: Lịch thi đấu và kết quả trận đấu.
Dự đoán & Phân tích: ai_pre_direct, schedule_predictions.

Quy trình cập nhật Database#

1.
Chỉnh sửa/Thêm file .sql trong db/models/ (định nghĩa bảng) hoặc db/queries/ (định nghĩa truy vấn).
2.
Chạy lệnh: sqlc generate.
3.
SQLC sẽ tự tạo code Go tương ứng trong thư mục db/.

4. Hướng Dẫn Cài Đặt (Installation Guide)#

Yêu cầu hệ thống#

Go: v1.24.0 trở lên.
MySQL: v8.0+.
Redis: v6+.
Elasticsearch (Tùy chọn cho tính năng tìm kiếm).

Các bước cài đặt#

1.
Clone Source Code:
2.
Chuyển sang nhánh Production:
3.
Cấu hình biến môi trường:
Sao chép file mẫu: cp .env.example .env (hoặc copy .env.example .env trên Windows).
Chỉnh sửa file .env để cấu hình kết nối Database, Redis, SMTP, v.v.
4.
Cài đặt Dependency:
5.
Khởi tạo Database & SQLC:
Đảm bảo MySQL đang chạy và đã tạo database tương ứng.
Generate code từ SQL:
6.
Chạy ứng dụng:
7.
Đồng bộ dữ liệu tìm kiếm (Tùy chọn):
Nếu bạn sử dụng Elasticsearch, chạy lệnh sau để đẩy dữ liệu vào ES:

Các api chính trong file#

server/router.go

Module Đội bóng (Team)#

Công khai (Public): /team
GET /: Lọc và danh sách đội bóng.
GET /🆔 Chi tiết đội bóng theo ID.
Công khai V2: /v2/public/team
GET /: Lọc dữ liệu đội bóng (phiên bản 2).
GET /search: Tìm kiếm đội bóng nâng cao qua Elasticsearch.
POST /sync/elasticsearch: Đồng bộ thủ công dữ liệu đội bóng lên Elasticsearch.
Quản trị (Admin - nằm trong nhóm Team): /v2/public/team/admin
GET /: Xem danh sách đội bóng cho Admin.
GET /ui: Giao diện quản lý đội bóng (HTML).
POST /upload-excel: Nhập dữ liệu đội bóng từ file Excel.
PUT /:teamid/update: Cập nhật thông tin ID nguồn (Rapid ID) cho đội bóng.

Module Trận đấu (Schedule/Match)#

Công khai (Public): /match
GET /: Danh sách trận đấu kèm bộ lọc.
GET /🆔 Chi tiết một trận đấu.
Công khai V2: /v2/public/match
GET /: Danh sách trận đấu V2.
GET /search: Tìm kiếm trận đấu qua Elasticsearch.
GET /all/search: Tìm kiếm tổng hợp tất cả thông tin liên quan (trận đấu, giải đấu, đội).
Ajax: /ajax/match
GET /live-event-feed: Lấy dữ liệu sự kiện trực tiếp (tỷ số, thẻ phạt...).
GET /gen-match-predictions: Tạo/Lấy dữ liệu dự đoán trận đấu.
GET /handicapdetail: Chi tiết tỷ lệ kèo chấp (Handicap).
GET /ouhandicap: Chi tiết tỷ lệ kèo Tài/Xỉu (Over/Under).
Quản trị (Admin): /v2/public/match/admin
GET /: Danh sách lịch thi đấu cho Admin.
GET /ui: Giao diện quản lý lịch thi đấu.
POST /upload-excel: Import lịch thi đấu từ Excel.
PUT /:scheduleid/update: Cập nhật ID sự kiện từ nguồn ngoài.

Module Cầu thủ (Player)#

Công khai: /player và /v2/public/player
GET /: Danh sách cầu thủ.
GET /🆔 Chi tiết cầu thủ.
GET /v2/public/player/search: Tìm kiếm cầu thủ trên Elasticsearch.

Module Giải đấu (Sclass)#

Công khai: /sclass và /v2/public/sclass
GET /: Thông tin giải đấu.
GET /🆔 Chi tiết giải đấu.
GET /search: Tìm kiếm giải đấu qua ES.
Ajax: (Gốc /ajax/)
GET /ajax/get-league-rank: Lấy bảng xếp hạng giải đấu.
GET /ajax/get-match-result: Lấy kết quả các trận đã đấu.

Module Dự đoán AI (AiPredirect)#

Công khai V2: /v2/public/aiPredirect
GET /schedule/🆔 Lấy dữ liệu dự đoán AI cho một trận đấu cụ thể theo ID.

Module Bài viết/Tip (SchedulePrediction)#

Công khai V2: /v2/public/tip
GET /: Danh sách các bài nhận định/tip bóng đá.
GET /:slug: Chi tiết bài nhận định thông qua đường dẫn thân thiện (slug).

Module Chuyển nhượng (PlayerZH)#

Ajax: /ajax
GET /ajax/player-hot-transfer: Thông tin chuyển nhượng cầu thủ hot.
GET /ajax/player-hot-transfer-ver-db: Thông tin chuyển nhượng hot từ database.

Module Admin (Tổng quát)#

Đường dẫn: /admin
GET /team-import: Giao diện trang import đội bóng.
POST /team-import/upload: Xử lý upload và lưu trữ dữ liệu đội bóng từ Excel.
Modified at 2026-04-16 10:25:45
Previous
Database
Next
Local
Built with