T

คู่มือการใช้งาน

ระบบจัดการทัวร์นาเมนต์แบดมินตัน — ครบทุกฟีเจอร์

🌐 thaibadtournaments.com

ผู้เล่น เจ้าของรายการ ชมรม แอดมิน เจ้าของระบบ
เวอร์ชัน 1.0  •  วันที่จัดทำ: 15 พฤษภาคม 2569
คู่มือนี้สร้างจากการสำรวจโค้ดและหน้าจอจริงทั้งระบบ

📑 สารบัญ

  1. 1 ภาพรวมระบบ
    • เว็บนี้คืออะไร • กลุ่มผู้ใช้ 5 ระดับ • Flow การทำงาน • 4 สถานะของรายการแข่ง
  2. 2 สำหรับผู้เล่น / นักกีฬา (15 หัวข้อ)
    • สมัครสมาชิก • Login • ผูก LINE • 2FA • ยืนยันตัวตน • โปรไฟล์ • ปฏิทินทัวร์ • สมัครแข่ง • ชวนคู่ • สลิป • Inbox • Notifications • Photo Search • Achievements • Privacy
  3. 3 สำหรับเจ้าของรายการ / Staff Admin (22 หัวข้อ)
    • Admin Dashboard • สร้างทัวร์ • Payment Mode • SlipOK • Bracket • Schedule Planner • Live Score • Group/KO • OBS • TTS • Broadcast • Identity Verify • Users • Analytics • Errors • Shuttlecocks • Export
  4. 4 สำหรับชมรม / สมาคม (6 หัวข้อ)
    • สร้างชมรม • Banner Designer • สมาชิก • Association Tournament • Bulk Import • Age Categories
  5. 5 ระบบ LINE Bot
    • คำสั่งทั้งหมด • Flow ผูกบัญชี • Reminder อัตโนมัติ • Broadcast
  6. 6 สำหรับเจ้าของระบบ (System Owner)
    • Cron Setup • SMTP • LINE Config • SlipOK Config • Gemini TTS • Migrations
  7. 7 ฟีเจอร์ Photo Face Search
    • 🚧 อยู่ระหว่าง setup Proxmox — ออกแบบ UI พร้อมแล้ว
  8. A ภาคผนวก
    • FAQ • 4 สถานะรายการแข่ง • คีย์ลัด • ติดต่อ Support
01

ภาพรวมระบบ

รู้จักโครงสร้าง กลุ่มผู้ใช้ และวงจรการทำงานของระบบ

📖 อ่านก่อนใช้งานทุกบทบาท

1.1 เว็บนี้คืออะไร?

ThaibadTournaments.com คือแพลตฟอร์มจัดการการแข่งขันแบดมินตันแบบครบวงจร ตั้งแต่ผู้เล่นสมัครเข้าแข่ง ไปจนถึงการแสดงผลคะแนนสดผ่าน OBS

หน้าแรกของเว็บ

รูปที่ 1.1 — หน้าแรกของเว็บ thaibadtournaments.com

🎯 เป้าหมายหลัก

🧩 ฟีเจอร์เด่น

🏆 Tournament Engine

รองรับ Round-robin + Knockout (Single/Double elim) อัตโนมัติ advance ทีมชนะ

📡 Live Scoring

ป้อนคะแนนสด → อัปเดต scoreboard + OBS overlay ใน 1 วินาที

💳 Payment + SlipOK

3 โหมด: manual, QR, SlipOK API ตรวจสลิปอัตโนมัติ

📱 LINE Bot

"แมตของฉัน", "แมตที่เท่าไร" + reminder อัตโนมัติ 30 นาที / 1 ชม.

🔊 TTS เรียกคิว

Gemini AI อ่านชื่อสนาม + ผู้เล่น มีการ cache เสียง

📸 Photo Face Search

ค้นหารูปด้วย selfie (อยู่ระหว่าง setup AI)

1.2 กลุ่มผู้ใช้ 5 ระดับ (Roles)

ระบบมีการแบ่งสิทธิ์ผู้ใช้ออกเป็น 5 ระดับ ดังตาราง:

Roleชื่อในระบบสิทธิ์หลักตัวอย่างผู้ใช้
System Owner system_owner ตั้งค่าระบบ, จัดการ migration, ดู error log, จัดการทุกอย่าง เจ้าของเว็บ
Staff Admin staff_admin สร้างทัวร์, ป้อนคะแนน, ตรวจสลิป, จัดการ user, broadcast LINE เจ้าหน้าที่จัดแข่ง
Client Owner client_owner เป็นเจ้าของชมรม, สร้างทัวร์ในชมรม, จัดการสมาชิก เจ้าของชมรม
Contributor contributor ช่วยป้อนคะแนน/ตรวจสลิปในทัวร์ที่ได้รับสิทธิ์เฉพาะ กรรมการชั่วคราว
User user สมัครแข่ง, ดูตาราง, ดูคะแนน, รับ notification นักกีฬาทั่วไป
💡 หมายเหตุเรื่อง Match Permissions

นอกจาก global role แล้ว ระบบยังมี per-tournament permission — เจ้าของรายการสามารถมอบสิทธิ์ scorer, verifier, viewer ให้บางคนเฉพาะทัวร์ของตัวเองได้

1.3 4 สถานะของรายการแข่ง (Tournament Status)

รายการแข่งทุกรายการในระบบจะอยู่ในหนึ่งใน 4 สถานะนี้ ส่งผลต่อสิทธิ์การสมัครและการแสดงผล

สถานะหมายความว่าผู้เล่นทำอะไรได้ผู้จัดทำอะไรได้
เปิดรับสมัคร รายการประกาศแล้ว เปิดให้ลงทะเบียน สมัคร, ชวนคู่, ชำระเงิน, ยกเลิก ดูผู้สมัคร, อนุมัติสลิป, จัดสาย
ปิดรับสมัคร หมดเวลาสมัครแล้ว รอเตรียมการแข่ง ดูรายชื่อ, ดูสาย จัดสาย, พิมพ์ scoresheet, plan ตาราง
กำลังแข่งขัน วันแข่งจริง — ใช้งาน live scoring ดูคิว, ดูคะแนนสด, รับ reminder LINE ป้อนคะแนน, advance ผู้ชนะ, OBS overlay
แข่งขันเสร็จสิ้น จบการแข่งขัน — ดูผลย้อนหลังได้ ดูผล, ดูสถิติ, ดูรูปภาพ แก้ผล (ถ้าผิด), upload รูป

📸 ตัวอย่างจริงในระบบทั้ง 4 สถานะ

เปิดรับสมัคร

เปิดรับสมัคร — รายการ "สนามกลางโอเพ่น #1"

ปิดรับสมัคร

ปิดรับสมัคร — รายการ "Test"

กำลังแข่งขัน

กำลังแข่งขัน — VENSON Kamphaengphet 2026

แข่งขันเสร็จสิ้น

แข่งขันเสร็จสิ้น — Rotary Championship 2026

⚠️ การเปลี่ยนสถานะ

สถานะเปลี่ยนได้เฉพาะ Admin / เจ้าของรายการ ผ่านหน้า edit_match.php ระบบไม่เปลี่ยนอัตโนมัติตามวันที่ — ผู้จัดต้องเปลี่ยนเอง

1.4 Flow การทำงานของระบบ

👥 มุมมองนักกีฬา (User)

User Journey
[1] สมัครสมาชิก → [2] ผูก LINE → [3] ตั้งค่าโปรไฟล์ + ยืนยันตัวตน
                                        ↓
[4] ดูปฏิทินทัวร์ → [5] สมัครรายการ → [6] ชวนคู่ → [7] ชำระเงิน
                                                          ↓
[8] รอ reminder LINE → [9] เช็คอินวันแข่ง → [10] ดูคิว/คะแนนสด
                                                          ↓
                                            [11] รับรางวัล + ดูสถิติย้อนหลัง

🏆 มุมมองเจ้าของรายการ (Admin)

Admin Journey
[1] สร้างรายการ → [2] กำหนด event/รุ่นอายุ → [3] ตั้งค่า Payment mode
        ↓
[4] เปิดรับสมัคร → [5] อนุมัติสลิป → [6] ปิดรับสมัคร
        ↓
[7] จัดสาย (Bracket) → [8] Schedule Planner → [9] พิมพ์ Scoresheet
        ↓
[10] เปลี่ยนสถานะ "กำลังแข่งขัน" → [11] ป้อนคะแนนสด
        ↓
[12] Auto-advance ทีมชนะ → [13] Broadcast LINE → [14] OBS overlay
        ↓
[15] เปลี่ยนสถานะ "เสร็จสิ้น" → [16] อัปโหลดรูป

🔗 ระบบที่ทำงานเบื้องหลัง (Cron + Webhook)

1.5 ทำความรู้จักหน้าตาเว็บ

🏠 หน้าแรก (Homepage)

หน้าแรก

รูปที่ 1.5.1 — หน้าแรกแสดง: รายการเด่น, ข่าวสาร, ปฏิทินใกล้เคียง

📅 ปฏิทินการแข่งขัน (calendar.php)

ปฏิทิน

รูปที่ 1.5.2 — ดูทุกรายการในมุมมองปฏิทินรายเดือน + รายการที่เปิดรับสมัคร

สี dot บนปฏิทินบอกสถานะ: