# ความก้าวหน้าภาคผนวก TourApp

อ้างอิงหลักอ่านจริงได้: 256 EDIT 26 (1).docx มี 832 ย่อหน้า 5 section; สำเนา read-only export ด้วย Word ได้ 85 หน้า อ้างอิงเพื่อนอ่านจริงได้ 96 หน้า ใช้เฉพาะการจัดภาคผนวก ไม่คัดลอกเนื้อหาหรือภาพของโครงการอื่น

รูปแบบ A4 ขอบ 2.54 ซม. TH SarabunPSK 16 pt และหัวข้อ 18 pt ตามรูปแบบเด่นในเล่มหลัก ตัวแบ่งภาคผนวกและภาพตามรูปแบบเล่ม ไม่มีการเดาเลขหน้าวิทยานิพนธ์สุดท้าย

## Checkpoints

1. เริ่มเขียน ก.1 และบันทึก Word พร้อมสัญญารูปแบบ artifact.md เป็น checkpoint_01.docx
2. เขียนภาคผนวก ก ครบ ก.1–ก.8 เป็น checkpoint_02.docx
3. เขียนคู่มือนักท่องเที่ยวครบ 26 หัวข้อ เป็น checkpoint_03.docx
4. เขียนคู่มือบริษัทครบ 12 หัวข้อ เป็น checkpoint_04.docx
5. เขียนคู่มือผู้ดูแลครบ 8 หัวข้อ เป็น checkpoint_05.docx
6. รวมภาพที่เลือก ตรวจ source discrepancies ปรับเลขหัวข้อไทย ล้าง media เดิมและตรวจจัดหน้า เป็น checkpoint_06.docx

เนื้อหารวม 54 หัวข้อย่อย ภาคผนวก ก 8 หัวข้อ และภาคผนวก ข 46 หัวข้อ มีภาพจริงที่ใช้ซ้ำ 10 ตำแหน่ง (ไฟล์ภาพไม่ซ้ำ 9 ไฟล์) ได้แก่ ก 1 นักท่องเที่ยว 6 บริษัท 2 และผู้ดูแล 1 ภาพใหม่ 0 ภาพ Fixture 0 ภาพที่ยังรอ 44 หัวข้อ มีข้อความขั้นตอนครบทุกหัวข้อ แต่ยังไม่ใช่เล่มพร้อมประกอบฉบับสมบูรณ์ด้านภาพ

## ข้อแตกต่างของเล่มกับโค้ด

- ภาคผนวก ก เดิมอ้าง PHP, htdocs, project_final, tb_user และ IT platform ซึ่งไม่ตรงกับ TourApp ต้องเขียนแทนด้วย Flutter/Dart/MariaDB/React Portal
- บทคัดย่อภาษาอังกฤษใช้ทั้ง Automated Tourism Clustering System และ Automated Tourist Clustering System เลือกชื่อตามปก Automated Tourism Clustering System
- บทสรุปเดิมอธิบายค้นหาและเข้าร่วมกลุ่ม แต่ primary flow ปัจจุบันบันทึก preference และจับสมาชิกอัตโนมัติ จึงไม่ใช้ภาพ legacy Join Group
- Portal ไม่มี /admin/dashboard หรือหน้าแก้สิทธิ์แยก และบริษัทไม่มีหน้าแก้ profile แยกใน routing ที่ตรวจ
- complete.sql เป็น dump ที่มีข้อมูลและ DROP TABLE ไม่ใช่ schema-only installer ที่ปลอดภัย ไม่ได้รันหรือแก้ฐานข้อมูล
- โครงการยังไม่มี schema-only installer ฉบับสมบูรณ์ที่ยืนยันกับโค้ดปัจจุบัน เขียนคำสั่งเตรียมฐานข้อมูลว่าง ส่งออกและนำเข้าเฉพาะโครงสร้างเป็นขั้นตอนใหม่ ไม่สร้างชื่อไฟล์สมมติแล้วอ้างว่ามีไฟล์จริง
- smart_search_page.dart เรียก Gemini analyze และ fallback แต่ไม่ใช้ค่าผลลัพธ์ที่คืนมาในการส่ง preference โดย submit ค่าจาก form draft ปัจจุบัน ไม่มีหน้าพรีวิวผลสกัดแยก คู่มือจึงให้ตรวจตัวควบคุมก่อนส่ง และไม่อ้างว่า Gemini เป็นผู้จัดสมาชิก
- ไม่มีหน้าประวัติทริปแยกใน Flutter routing; ไม่สร้างเมนูในคู่มือ ประวัติข้อเสนอมีจริงใน Portal ฝั่งบริษัท
- หน้าเสนอราคา Flutter ระบุ UI สาธิตไม่เชื่อมอัปโหลดจริง การเสนอราคาจริงใช้ Portal พร้อม PDF
- ไม่มีหน้าคะแนนบริษัทแยกใน Agency Portal; คะแนนรวมมีในหน้า agency_profile ของนักท่องเที่ยว
- health databaseConfigured เป็นหลักฐานค่าตั้งฐานข้อมูล ไม่ใช่การ query สำเร็จ; launcher ตรวจฐานข้อมูลด้วย mysql.exe แยก
- ภาพ embedded จากบท 4 ตรวจแล้วพบ UI Join/Chat/Rating รุ่นเก่า จึงไม่ใช้เป็นหลักฐาน UI ปัจจุบัน
- บทเครื่องมือเดิมระบุ Node.js เป็น backend แต่ entry point ที่ใช้จริงคือ Dart server/gemini_proxy.dart; Node.js/npm ใช้ Portal
- หน้าล็อกอินนักท่องเที่ยวรับอีเมลหรือเบอร์โทรศัพท์ ต่างจาก Portal ที่รับชื่อผู้ใช้หรืออีเมล ปุ่ม social login และ forgot password ของแอปยังแสดงข้อจำกัดตามข้อความจริงในโค้ด

## ภาพและข้อจำกัด

ตรวจภาพเก่า 78 ภาพโดยผู้ร่วมงาน เลือกเฉพาะ UI ปัจจุบันที่ไม่มีข้อมูลส่วนบุคคล ภาพ authenticated Matching/Poll/Bid/Payment/TripHub และ Portal หลัง login ยังไม่มีหลักฐานภาพที่เหมาะสม จะแสดง [รอภาพหน้าจอจริง] และรายการ pending ตามหัวข้อจริง

ตรวจสภาพแวดล้อมแบบอ่านอย่างเดียวแล้วพบว่าบริการและ Pixel_6 ปิดอยู่ ณ เวลาตรวจ ไม่เปิดหรือเปลี่ยนสถานะ MariaDB/API เพื่อถ่ายภาพ ไม่อ่านค่าลับ ไม่ส่งสลิป ไม่เรียก Gemini/SlipOK เพื่อจัดทำเอกสาร

ไม่มี bundled LibreOffice ใน runtime ใช้ Word COM เปิดสำเนาแบบ read-only แล้วส่งออก PDF; จะตรวจภาพ PNG ด้วย Poppler ไม่ใช้ LibreOffice ของผู้ใช้

ทดลอง render_docx.py แล้วล้มเหลวด้วย FileNotFoundError: LibreOffice soffice.exe was not found on PATH จึงใช้ Word COM export เป็น PDF ตามทางเลือกที่ได้รับอนุญาตและ rasterize ด้วย Poppler ไม่อ้างว่า renderer หลักสำเร็จ

บันทึกขั้นตอนทั้งหมดเป็นไฟล์ใน docs เท่านั้น ไม่แก้ Dart/Flutter/Portal source ไม่แก้ข้อมูลหรือธุรกิจ ไม่เริ่มหรือหยุด MariaDB ไม่แตะการซ่อม recovery หรือกลุ่ม #115/#102 ไม่เรียก payment/SlipOK/Gemini เพื่อถ่ายภาพ ไม่มีค่าคีย์ รหัสผ่าน สลิปหรือเอกสารส่วนบุคคลในไฟล์ส่งมอบ

## การตรวจไฟล์ส่งมอบ

Word COM เปิดไฟล์ฉบับสุดท้ายและส่งออก PDF ได้ตามปกติโดยไม่ใช้ OpenAndRepair มี 31 หน้า ใช้ Poppler ที่ bundled path เรนเดอร์เป็น PNG แล้วตรวจการจัดหน้า ภาพและข้อความครบทุกหน้า โดยผู้เขียนตรวจหน้า 1–15 และผู้ร่วมตรวจตรวจหน้า 16–31 พร้อมตรวจหน้าคำสั่งและปกภาคผนวกซ้ำ ไฟล์ปกภาคผนวก ก และ ข ใช้ตำแหน่งเดียวกัน Caption และข้อความรอภาพอยู่กับย่อหน้าอธิบาย ไม่พบภาพบิด ข้อความล้น การซ้อนทับ หรือหัวข้อรอภาพโดดท้ายหน้า

กลับไปใช้ standard JUSTIFY ตามเล่มหลัก และตั้งภาษา th-TH หลังทดสอบ Thai-distribute แล้วพบว่าตัวอักษรบางบรรทัดกระจายมาก คำสั่ง CLI แยกเป็นบรรทัดชิดซ้าย Consolas 11 pt เพื่ออ่าน flag และคัดลอกได้ ส่วนเนื้อหา TH SarabunPSK 16 pt ย่อหน้าแรก 1.27 ซม. ขนาดและขอบกระดาษตามเล่มหลัก

ตรวจ ZIP CRC ผ่านทุก checkpoint มี media เฉพาะภาพใช้จริง 0, 1, 7, 8, 9 และ 9 ไฟล์ตาม checkpoint 1–6 ไม่มีภาพต้นฉบับค้างซ่อนอยู่ในแพ็กเกจ ไม่มี comments, footnotes หรือ endnotes และ author/lastModifiedBy ว่าง Default bibliography custom XML เป็นชุดว่างของ python-docx ไม่ใช่ข้อมูลต้นฉบับส่วนบุคคล

ไฟล์อ้างอิง Word เดิมยังมี SHA-256 a0f08ac7095ed337053b7bef6f9755f48c8d899e2db3aa2cd16501c69d941d4c ไม่เปลี่ยนแปลง เอกสารนี้เป็นภาคผนวกแยกที่ใช้เลขหน้าตนเอง ยังไม่ได้ประกอบเข้าเล่มวิทยานิพนธ์หลักหรือยืนยันเลขหน้าในสารบัญของเล่ม

## งานต่อเนื่อง 20261003_130906 ชุด 1

แก้ Word เดิมเท่านั้น อ้างใช้ภาพร่วม 5 หัวข้อ เหลือ marker 39 จุด จำแนกเดิม44: A0/B6/C28/D5/E5 เก็บ checkpoint รุ่นก่อนและหลังชุดนี้ โดยไม่แตะ checkpoint_01–06 เดิม รอ render/ตรวจหน้ารุ่นต่อเนื่องก่อนส่งมอบ

## งานต่อเนื่อง 20261003_131414 ชุด 2

ใส่ภาพโฟลเดอร์โครงการที่จับใหม่แบบอ่านอย่างเดียวใน ก.2 และปรับเลขภาพ ก ต่อเนื่อง ภาพแทรก11ตำแหน่ง unique10; ภาพใหม่1 ภาพเดิม10ตำแหน่ง shared5 marker38 (B5/C28/D5) ไม่ใช้ภาพสมัครที่ toolbar บังข้อมูล รอเจ้าของเปิด session สำหรับหน้าที่ป้องกันไว้

## งานต่อเนื่อง 20261003_132126 ชุด 3

เติมภาพรายชื่อ SQL, config และ Launcher จาก Explorer ที่เก็บใหม่แบบอ่านอย่างเดียว รวมภาพใหม่4/ภาพเดิม10ตำแหน่ง/unique13 ใช้ภาพร่วม5หัวข้อ เหลือ35 marker (B2/C28/D5). ภาพไม่มีผล execute/import หรือบริการกำลังทำงาน และไม่ถือ cleaninstallerพร้อมใช้ รอ render/ตรวจรุ่นสุดท้าย

## Checkpoint ตรวจไฟล์ที่บันทึกและหยุดใช้ไฟล์รวมทดลอง — 3 ตุลาคม 2569

### ผลงานที่ปลอดภัยสำหรับเปิดตรวจ

- ใช้ Word ภาคผนวกเดิม ไม่เขียน 54 หัวข้อซ้ำ ตรวจพบภาพใหม่ทั้ง 4 ฝังอยู่จริงและ hash ตรงกับไฟล์ใน screenshots ไม่มีภาพใหม่ที่เป็นเพียงลิงก์ภายนอก
- แก้เฉพาะข้อความอ้างใช้ภาพร่วม 5 ย่อหน้าจาก Caption เป็น Normal และเติมคำว่า “ใช้” ที่ ก.5 เพื่อไม่ให้ข้อความอ้างภาพ ข-1 ถูกนับเป็นคำบรรยายภาพซ้ำ คำบรรยายจริง 14 รายการมีเลขไม่ซ้ำ ภาพจริง 14 ตำแหน่ง/13 ไฟล์ไม่ซ้ำ ภาพร่วม 5 หัวข้อ รอภาพ 35 หัวข้อ
- สำรองก่อนแก้และบันทึกหลังแก้ใน checkpoints/verified_reference_fix_20261003_185043 รวมทั้งมี snapshot ก่อนแก้ใน checkpoints/verified_saved_20261003_1330 ชื่อ snapshot เป็นรหัสไฟล์ ไม่ใช้เป็นหลักฐานเวลาเรียกบริการ
- Word ภาคผนวกฉบับล่าสุดเปิดแบบ read-only และ export PDF ด้วย Microsoft Word สำเร็จ ไม่ใช้ OpenAndRepair; PDF มี 33 หน้า เรนเดอร์ครบที่ work/verified_final_render_20261003
- ตรวจทุกหน้าของรุ่นก่อนแก้ reference แล้ว เปรียบเทียบภาพเรนเดอร์รุ่นล่าสุด พบ 28 หน้าเหมือนเดิมทุก pixel และเปลี่ยนเฉพาะหน้า 7, 10, 24, 29, 32 ตรวจ 5 หน้านั้นซ้ำแล้ว ไม่พบภาพล้น ข้อความทับกัน คำบรรยายหลุดจากภาพ หรืออักษรเสีย หน้า 33 เป็นข้อความท้าย 3 บรรทัด ไม่ใช่หน้าหาย
- ZIP CRC และ document XML ผ่าน author/lastModifiedBy ว่าง เนื้อหายัง 54 หัวข้อ และข้อความรอภาพ 35 จุดไม่ถูกลบทิ้งเพื่อทำให้ดูสมบูรณ์

### ปัญหา merge_base.docx และสถานะเล่มรวม

เจ้าของแจ้งว่า Word เตือนว่า work/merge_base.docx เคยทำให้เกิดข้อผิดพลาดร้ายแรงและเลือกไม่เปิด หลังได้รับแจ้งไม่ได้เปิดไฟล์นี้ใน Word ซ้ำ ตรวจเฉพาะ ZIP CRC/document XML แบบอ่านอย่างเดียวผ่าน แต่ผลนี้ไม่รับรองว่า Word เปิดไฟล์ได้ และไม่ระบุสาเหตุของคำเตือน มีหลักฐานจากงานก่อนหน้าว่า automation รวมเล่มพบ COM exception; ยังไม่มีหลักฐานพอแยกว่าเกิดจากไฟล์ ช่วงแก้ fields หรือสภาพแวดล้อม Word

ไม่พบ WINWORD automation ค้าง ณ เวลาตรวจล่าสุด ไม่รีเซ็ต Word หรือแก้รายการไฟล์ที่ Word ปิดกั้น ไม่มี Application event 1000/1002 ของ Word ในช่วงสองชั่วโมงที่ตรวจ แต่ไม่ถือว่าหักล้างคำเตือนที่เจ้าของเห็นก่อนหน้านั้น

TourApp_Thesis_With_Appendices_DRAFT.docx ที่มีอยู่เป็นไฟล์รวมทดลองรุ่นก่อนแจ้งปัญหา **ยังไม่ตรวจรับและไม่ใช่ไฟล์ส่งมอบพร้อมใช้งาน** ไม่ใช้ merge_base เป็นฐานต่อ ไม่อ้างว่าอัปเดตสารบัญ/เลขหน้าของเล่มรวมสำเร็จ งานรวมเล่มหยุดเฉพาะส่วนนี้เพื่อลดความเสี่ยงและไม่วน retry หากทำต่อให้เริ่มสำเนาชื่อใหม่จากต้นฉบับที่สมบูรณ์ ตรวจการเปิดสำเนาก่อน แล้วรวมภาคผนวกฉบับที่ตรวจรับนี้ โดยคงต้นฉบับไม่แก้ทับ

### ภาพสำคัญที่ยังเก็บไม่ได้

รายการภาพเก่าที่มีโอกาสใช้เพิ่มเติมตรวจแล้ว แต่บางภาพเป็น UI รุ่นเก่า มีข้อมูลส่วนตัว หรือไม่ตรง current flow จึงไม่เติมเพื่อให้จำนวนมากขึ้น รวมรายการเจ้าของช่วยเปิดไว้ใน appendix_pending.md พร้อมบทบาท เมนู/route ชื่อไฟล์ และตำแหน่งบันทึก

ขณะตรวจรอบนี้ไม่พบ listener ของ MariaDB 3306, Backend 8787/8788 หรือ Portal 4173/4174 จึงยังเก็บภาพหลัง Login ใหม่อย่างมีหลักฐานการเชื่อมต่อไม่ได้ ไม่เปิดบริการฐานข้อมูลหรือสร้าง session/ข้อมูลธุรกิจเพื่อจัดฉากภาพ Pixel_6 ที่เปิดจากช่วงงานก่อนหน้าเข้าหน้าสมัครว่างได้ แต่แถบเครื่องมือคีย์บอร์ดบังรายละเอียด จึงไม่ใช้ภาพนั้นและไม่ส่งข้อมูลสมัคร

รอภาพ Waiting, Chat, City/Place Poll, ข้อเสนอ/ผลโหวต, Payment เดิม, Trip Hub, Rating และ Portal หลัง Login จากรายการที่เกิดขึ้นแล้วและเจ้าของมีสิทธิ์ดู ห้ามส่ง preference/คะแนน/ข้อเสนอ/สลิป/รีวิวใหม่เพียงเพื่อให้มีภาพ

### ขั้นตอนทำต่อโดยไม่เริ่มใหม่

1. ใช้ TourApp_Appendix_A_B.docx และ PDF ฉบับล่าสุด พร้อม appendix_image_index.md และ pending35 นี้
2. เจ้าของเปิดหน้าตามรายการเดียวใน appendix_pending.md แล้วเก็บภาพต้นฉบับโดยไม่เปลี่ยนธุรกิจ สร้างสำเนาปิดบังข้อมูลส่วนตัวก่อนใส่ Word
3. เติมภาพทีละชุด ปรับเลข ก/ข และบันทึก Word+checkpoint ทุกชุด ไม่รัน build_appendices.py เพื่อสร้างเอกสารใหม่ทับงานล่าสุด
4. ตรวจหน้าใหม่และ export PDF ซ้ำเฉพาะหลังแก้เอกสาร สำเนาเล่มรวมเริ่มใหม่จากต้นฉบับที่สมบูรณ์เท่านั้น ห้ามใช้หรือเปิด merge_base.docx ที่ Word เตือนซ้ำ

ไม่ได้แก้ Source Code หรือฐานข้อมูล ไม่แตะกลุ่ม #115/#102 ไม่เรียก Gemini/SlipOK หรือทำธุรกรรมเพื่อทำเอกสาร ต้นฉบับ Word SHA-256 ยัง A0F08AC7095ED337053B7BEF6F9755F48C8D899E2DB3AA2CD16501C69D941D4C

## Checkpoint เก็บภาพกระบวนการหลัก — 3 ตุลาคม 2569

อ่าน pending/index/progress ล่าสุดและตรวจ Word ที่บันทึกแล้ว: ZIP CRC ผ่าน มีภาพแทรก14ตำแหน่ง รอภาพ35หัวข้อ PDF33หน้า Word SHA-256 6d6b65012688ffd8b2e278bf3da02695e018c2641bfa55d367ca2d73a294b94a; PDF SHA-256 fb7017af96ff0ed72e6d0bf516e1098331a18aad84fd6c67fd7dbeadba61eeb1 ตรงกับฉบับตรวจรับก่อนหน้า

ค้นรายชื่อภาพที่เกี่ยวข้องใน audit/docs ก่อนเก็บภาพใหม่ ไม่พบหลักฐานใหม่ที่ระบุ Waiting/Poll/Bid/Payment/TripHub/Rating ปัจจุบันนอกชุดเดิม ไม่เปิดตรวจ78ภาพซ้ำทั้งหมด และไม่ใช้ภาพ legacy Join หรือภาพที่เคยตัดออกเพราะมีข้อมูลส่วนตัวมาอ้างเป็น current UI

ตรวจ listener ไม่พบ3306/8787/8788/4173/4174; adb devices ไม่มีอุปกรณ์ (คำสั่งเริ่ม adb daemon เท่านั้น ไม่เปิด Emulator/ไม่แตะ app data) ตรวจรายการหน้าต่างแล้วไม่พบ Pixel_6 เปิดอยู่ เมื่อขออ่าน Chrome เครื่องมือ Computer Use รายงานหยุดเพราะยืนยัน URL ปัจจุบันบน Windowsไม่ได้ จึงหยุดคำสั่ง UI ทุกชนิด ไม่เริ่ม MariaDB/Backend/Portal ไม่ข้าม Login ไม่ใช้ทางควบคุมหน้าจออื่นเพื่อเลี่ยงการหยุดนี้

รอบนี้เพิ่ม0ภาพ คง14ตำแหน่ง/13ไฟล์ไม่ซ้ำ/ภาพร่วม5หัวข้อ/35pending ไฟล์ WordและPDFไม่เปลี่ยนและไม่exportซ้ำโดยไม่มีภาพเพิ่ม จัดกลุ่มหน้าจอหลักเป็น10ชุด พร้อมบทบาท เมนู ลำดับ ชื่อไฟล์ และ path รับภาพไว้ใน appendix_capture_guide.md อัปเดต pending/index และบันทึก snapshot ทั้งWord/PDF/รายงานสำหรับทำต่อ

ขั้นต่อไป: เจ้าของเปิดระบบและ Loginเองตามคู่มือ เก็บภาพเฉพาะรายการเดิมที่มีสิทธิ์ดูและไม่ทำรายการธุรกิจ แล้วแจ้ง path ชุดภาพเพื่อให้เติมในWordเดิมทันที ไม่รันFullE2E ไม่เขียน54หัวข้อซ้ำ ไม่เปิดmerge_base ไม่รวมเล่มหรือแก้บท1–5 งานนี้ไม่ได้แก้Source Code ฐานข้อมูลหลัก ข้อมูล#115/#102 หรือเรียกSlipOK
