คู่มือนี้เป็นแผนการสอนและชุด Workshop จำลองเท่านั้น ทุกแอป ไฟล์ และผลลัพธ์เป็น Classroom Prototype จากข้อมูลสังเคราะห์ ไม่ใช่ระบบ Payroll, Accounting, Storefront หรือเครื่องมือ Production และห้ามใช้กับงานจริง

# Netlify Drop Classroom Handoff

> **CLASSROOM SIMULATION ONLY** — เอกสารนี้เป็นส่วนหนึ่งของแผนการสอน ไม่ใช่ production runbook, storefront launch plan หรือ publish-ready approval

Product Showcase ชุดนี้เป็น static local learning scaffold ไม่มี backend, authentication, database, payment, customer data หรือ automatic publication การ deploy จริงเป็น **optional หลังบริษัทอนุมัติเท่านั้น** และ local demo ถือว่าผ่านเมื่อไม่มี account, network หรือ approval

## 1. Local preview ที่ใช้เป็นผลลัพธ์หลัก

1. รัน `node workshop-src/client-program/product-showcase/build.mjs`
2. เปิด `workshop-src/client-program/product-showcase/dist/index.html`
3. ทดสอบ `DL-1007` = 1 รายการ, Round + Available = 4 รายการ และคำว่า `not-found` = 0 รายการ
4. ตรวจ mobile 390 px, tablet 768 px และ desktop 1440 px
5. ตรวจ empty state/reset, keyboard focus, alt text สองภาษา และ Rights Manifest

การจบที่ขั้นตอนนี้คือ classroom pass ที่สมบูรณ์ ไม่จำเป็นต้องเผยแพร่จริง

## 2. Production build folder สำหรับแบบฝึก

ใช้เฉพาะ folder `workshop-src/client-program/product-showcase/dist/` ที่ผ่าน build validation แล้ว ภายในต้องมี `index.html`, `404.html`, `app.js`, `filter.js`, `styles.css`, `data.js` และ `media/` แบบ relative path ห้ามเพิ่มไฟล์จริงของบริษัทระหว่างการ drag/drop

## 3. Public-data review ก่อนขออนุมัติ

- Product catalog เป็น synthetic และไม่มีข้อมูลผู้ซื้อ ราคาเฉพาะสัญญา เงื่อนไขสัญญา ข้อมูลส่วนบุคคล หรือเอกสารภายใน
- Claims ทุกข้อมี Approved source จาก Task 6 และไม่ถูกเขียนเพิ่มระหว่างทำเว็บ
- Media ทุกชิ้นมี Approved rights row, Thai/English alt text และ Concept Mockup disclosure
- CTA เป็น classroom review action ไม่ใช่การสั่งซื้อ ชำระเงิน หรือส่งข้อมูลลูกค้า
- Sales owner, Creative owner และ Data owner ตรวจแล้ว

ถ้าข้อใดไม่ผ่าน ให้หยุดที่ local demo และบันทึกสิ่งที่ต้องแก้ ห้ามเผยแพร่

## 4. Guided Netlify Drop exercise — optional

ทำส่วนนี้เป็น workflow walkthrough เฉพาะเมื่อบริษัทอนุมัติ และใช้ approved synthetic classroom data only:

1. เปิด Netlify Drop ด้วย account ที่บริษัทอนุมัติ
2. ลาก folder `dist/` ที่ผ่าน public-data review ลงในพื้นที่ Drop
3. รอให้ระบบแสดง preview URL แล้วตรวจหน้าแรก, 404, search/filter, images และ mobile view
4. บันทึก URL ลง Publish Record เท่านั้นเมื่อ approvers ครบ
5. กำหนด expiry/review date และผู้รับผิดชอบ unpublish ก่อนแชร์ URL

Task 7 นี้ไม่ทำ deployment จริง ขั้นตอนข้างต้นมีไว้ให้อธิบาย workflow ในห้องเรียน

## 5. Publish Record template

```text
Asset: ZenityX Synthetic Product Showcase classroom simulation
Environment: Optional public classroom preview / Local demo
Build folder reviewed: ____________________
Public-data review result: PASS / BLOCK
Sales owner: ____________________  Date: __________
Creative owner: _________________  Date: __________
Data owner: _____________________  Date: __________
Published URL (leave blank for local pass): ____________________
Publish date/time: ____________________
Expiry or review date: ____________________
Unpublish owner: ____________________
Known limitations: Static synthetic learning scaffold; not production/storefront/publish-ready
```

## 6. Unpublish steps

1. แจ้ง Sales, Creative และ Data owner ว่าจะถอน preview
2. เปิด project/site ที่ account บริษัทอนุมัติและเลือก unpublish/delete deployment ตามสิทธิ์ที่ได้รับ
3. เปิด URL เดิมจากหน้าต่าง private เพื่อยืนยันว่าเข้าถึงไม่ได้
4. บันทึกวันที่ เวลา ผู้ดำเนินการ และเหตุผลใน Publish Record
5. เก็บเฉพาะ local synthetic workshop files ตาม retention ที่อนุมัติ

หากผู้เรียนไม่มีสิทธิ์ใน account ให้หยุดและส่งต่อให้ผู้อนุมัติ ห้ามพยายามข้าม permission gate
