{
  "stamp": "20261003_130906",
  "checkpoint": "C:\\Users\\Asus\\Desktop\\TourAppProject\\travelin_app\\docs\\thesis_appendices\\checkpoints\\continuation_20261003_130906",
  "remaining": [
    {
      "label": "ก.1",
      "title": "ฮาร์ดแวร์และซอฟต์แวร์ที่ใช้",
      "role": "A",
      "key": "versions",
      "category": "B",
      "reason": "เปิดหน้าที่ไม่ต้องเข้าสู่ระบบหรือแสดงไฟล์โครงการที่ไม่มีค่าลับได้ โดยไม่รันคำสั่งเปลี่ยนระบบ"
    },
    {
      "label": "ก.2",
      "title": "การเตรียมโครงการและแพ็กเกจ",
      "role": "A",
      "key": "project_folder",
      "category": "B",
      "reason": "เปิดหน้าที่ไม่ต้องเข้าสู่ระบบหรือแสดงไฟล์โครงการที่ไม่มีค่าลับได้ โดยไม่รันคำสั่งเปลี่ยนระบบ"
    },
    {
      "label": "ก.3",
      "title": "การเตรียมฐานข้อมูลสำหรับการติดตั้งใหม่",
      "role": "A",
      "key": "database_schema",
      "category": "B",
      "reason": "เปิดหน้าที่ไม่ต้องเข้าสู่ระบบหรือแสดงไฟล์โครงการที่ไม่มีค่าลับได้ โดยไม่รันคำสั่งเปลี่ยนระบบ"
    },
    {
      "label": "ก.4",
      "title": "การตั้งค่าบริการ Dart และผู้ให้บริการภายนอก",
      "role": "A",
      "key": "backend_config",
      "category": "B",
      "reason": "เปิดหน้าที่ไม่ต้องเข้าสู่ระบบหรือแสดงไฟล์โครงการที่ไม่มีค่าลับได้ โดยไม่รันคำสั่งเปลี่ยนระบบ"
    },
    {
      "label": "ก.7",
      "title": "การเปิดระบบด้วย start_tourapp bat",
      "role": "A",
      "key": "launcher",
      "category": "B",
      "reason": "เปิดหน้าที่ไม่ต้องเข้าสู่ระบบหรือแสดงไฟล์โครงการที่ไม่มีค่าลับได้ โดยไม่รันคำสั่งเปลี่ยนระบบ"
    },
    {
      "label": "ข.1.2",
      "title": "การสมัครสมาชิกนักท่องเที่ยว",
      "role": "tourist",
      "key": "register",
      "category": "B",
      "reason": "เปิดหน้าที่ไม่ต้องเข้าสู่ระบบหรือแสดงไฟล์โครงการที่ไม่มีค่าลับได้ โดยไม่รันคำสั่งเปลี่ยนระบบ"
    },
    {
      "label": "ข.1.4",
      "title": "การดูและแก้ไขโปรไฟล์",
      "role": "tourist",
      "key": "profile",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.1.9",
      "title": "สถานะรอจับคู่และกรอบเวลา 24 ชั่วโมง",
      "role": "tourist",
      "key": "waiting",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.1.10",
      "title": "การรอต่อและเลือกจุดหมายทางเลือก",
      "role": "tourist",
      "key": "waiting_alternative",
      "category": "D",
      "reason": "ใช้ได้เฉพาะภาพผลจากธุรกิจที่เกิดขึ้นแล้ว ห้ามดำเนินรายการเพื่อสร้างภาพ"
    },
    {
      "label": "ข.1.11",
      "title": "ผลจับกลุ่มและข้อมูลกลุ่มของฉัน",
      "role": "tourist",
      "key": "matched",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.1.12",
      "title": "การสนทนาภายในกลุ่ม",
      "role": "tourist",
      "key": "chat",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.1.13",
      "title": "การลงคะแนนเลือกเมืองหรือภูมิภาค",
      "role": "tourist",
      "key": "city_poll",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.1.14",
      "title": "การเลือกสถานที่และกิจกรรมตามเมืองที่ชนะ",
      "role": "tourist",
      "key": "places_poll",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.1.15",
      "title": "การตรวจผลและประวัติรอบโหวตปลายทาง",
      "role": "tourist",
      "key": "poll_results",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.1.16",
      "title": "การดูข้อเสนอจากหลายบริษัท",
      "role": "tourist",
      "key": "offers",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.1.17",
      "title": "การอ่านรายละเอียดแพ็กเกจและข้อมูลบริษัท",
      "role": "tourist",
      "key": "package_detail",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.1.18",
      "title": "การลงคะแนนเลือกบริษัทนำเที่ยว",
      "role": "tourist",
      "key": "agency_vote",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.1.19",
      "title": "การประกาศผู้ชนะและเปิดชำระเงิน",
      "role": "tourist",
      "key": "winner",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.1.20",
      "title": "การเลือกช่องทางและเตรียมหลักฐานชำระเงิน",
      "role": "tourist",
      "key": "payment",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.1.21",
      "title": "การส่งสลิปและติดตามผลตรวจสอบ",
      "role": "tourist",
      "key": "slip_status",
      "category": "D",
      "reason": "ใช้ได้เฉพาะภาพผลจากธุรกิจที่เกิดขึ้นแล้ว ห้ามดำเนินรายการเพื่อสร้างภาพ"
    },
    {
      "label": "ข.1.22",
      "title": "การใช้ Trip Hub และอ่านข้อมูลนัดหมาย",
      "role": "tourist",
      "key": "trip_hub",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.1.23",
      "title": "การจัดเตรียมและส่งเอกสารการเดินทาง",
      "role": "tourist",
      "key": "travel_docs",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.1.24",
      "title": "สถานะการเดินทางและการจบทริป",
      "role": "tourist",
      "key": "journey",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.1.25",
      "title": "การให้คะแนนและตรวจข้อมูลหลังจบทริป",
      "role": "tourist",
      "key": "rating_history",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.2.3",
      "title": "การตรวจสถานะอนุมัติและข้อมูลบริษัท",
      "role": "agency",
      "key": "agency_dashboard",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.2.4",
      "title": "การค้นหากลุ่มใน Lead Marketplace",
      "role": "agency",
      "key": "agency_leads",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.2.5",
      "title": "การอ่านรายละเอียดกลุ่มและความต้องการรวม",
      "role": "agency",
      "key": "agency_lead_detail",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.2.6",
      "title": "การเตรียมราคาและโปรแกรม PDF",
      "role": "agency",
      "key": "agency_program",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.2.7",
      "title": "การอัปโหลดและส่งข้อเสนอ",
      "role": "agency",
      "key": "agency_submit",
      "category": "D",
      "reason": "ใช้ได้เฉพาะภาพผลจากธุรกิจที่เกิดขึ้นแล้ว ห้ามดำเนินรายการเพื่อสร้างภาพ"
    },
    {
      "label": "ข.2.8",
      "title": "การติดตามข้อเสนอและสถานะ",
      "role": "agency",
      "key": "agency_bids",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.2.9",
      "title": "การอ่านผลโหวตและข้อเสนอที่ชนะ",
      "role": "agency",
      "key": "agency_vote_results",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.2.10",
      "title": "การตรวจเอกสารนักท่องเที่ยวของทริปที่ชนะ",
      "role": "agency",
      "key": "agency_documents",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.2.11",
      "title": "การจัดการนัดหมายและสถานะทริป",
      "role": "agency",
      "key": "agency_journey",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.3.2",
      "title": "หน้าหลักผู้ดูแลและจำนวนรายการ",
      "role": "admin",
      "key": "admin_overview",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.3.3",
      "title": "การค้นหาและดูข้อมูลผู้ใช้งาน",
      "role": "admin",
      "key": "admin_users",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.3.4",
      "title": "การระงับและเปิดใช้งานบัญชีนักท่องเที่ยว",
      "role": "admin",
      "key": "admin_user_status",
      "category": "D",
      "reason": "ใช้ได้เฉพาะภาพผลจากธุรกิจที่เกิดขึ้นแล้ว ห้ามดำเนินรายการเพื่อสร้างภาพ"
    },
    {
      "label": "ข.3.5",
      "title": "การตรวจบริษัทและใบอนุญาต",
      "role": "admin",
      "key": "admin_license",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    },
    {
      "label": "ข.3.6",
      "title": "การอนุมัติ ปฏิเสธและระงับบริษัท",
      "role": "admin",
      "key": "admin_agency_status",
      "category": "D",
      "reason": "ใช้ได้เฉพาะภาพผลจากธุรกิจที่เกิดขึ้นแล้ว ห้ามดำเนินรายการเพื่อสร้างภาพ"
    },
    {
      "label": "ข.3.7",
      "title": "การตรวจกลุ่มและสถานะกระบวนการ",
      "role": "admin",
      "key": "admin_groups",
      "category": "C",
      "reason": "ต้องมี session ตามบทบาทและข้อมูลเดิมที่เข้าถึงได้ อ่านอย่างเดียว; หากไม่มีข้อมูลเดิมให้รอภาพจากการใช้งานจริง"
    }
  ],
  "shared": {
    "ก.5": "ภาพประกอบที่ ข-1 แสดงหน้าแรกเมื่อเปิดแอปนักท่องเที่ยวได้ ใช้ภาพร่วมกับ ข.1.1; ภาพนี้ไม่ใช่หลักฐานการติดตั้ง SDK หรือการเชื่อมต่อฐานข้อมูล",
    "ก.8": "ใช้ภาพประกอบที่ ก-1 และ ข-1 ร่วมกันเพื่อเทียบหน้าล็อกอิน Portal และหน้าแรกแอปที่เปิดได้ การยืนยันการเชื่อมต่อฐานข้อมูลและความพร้อมครบระบบให้ตรวจตามขั้นตอนด้านล่าง",
    "ข.1.26": "ใช้ภาพประกอบที่ ข-2 ร่วมกันเพื่อแสดงหน้าสำหรับเข้าสู่ระบบด้วยบัญชีถัดไป ภาพนี้ไม่แสดงปุ่มออกจากกลุ่มหรือยืนยันว่ามีการออกจากกลุ่มแล้ว",
    "ข.2.12": "ใช้ภาพประกอบที่ ข-7 ร่วมกันเพื่อแสดงหน้าล็อกอินบริษัทสำหรับเข้าใช้งานครั้งถัดไป ภาพนี้ไม่ใช่หน้าคะแนนบริษัท",
    "ข.3.8": "ใช้ภาพประกอบที่ ข-9 ร่วมกันเพื่อแสดงหน้าล็อกอินผู้ดูแลสำหรับเข้าใช้งานครั้งถัดไป ไม่ใช้ภาพนี้เป็นหลักฐานการเปลี่ยนสิทธิ์บัญชี"
  }
}