แดชบอร์ด
ภาพรวมระบบและสถิติการใช้งาน
กำลังโหลด...
ผู้ดูแลระบบ
การแจ้งเตือน
0
เจ้าหน้าที่
0
กรรมการ
0
รออนุมัติ
0
ลาวันนี้
0
LINE ผู้ติดตาม
0
ระบบ/บริการ
การใช้งานเว็บ nkbkcoop.com
—
ออนไลน์ตอนนี้
—
Active วันนี้
—
Active 7 วัน
—
Active 30 วัน
—
Page views วันนี้
หน้ายอดนิยม (7 วัน)
สรุปการลาเดือนนี้
0
รายการทั้งหมด
0
อนุมัติแล้ว
0
วันลารวม
0
จำนวนคนลา
ทางลัด
เข้าใช้งานล่าสุด
กิจกรรมล่าสุด
วันหยุดที่ใกล้จะถึง
ใกล้หมดอายุ
ตั้งค่าหน้าเรียกคิว
การตั้งค่าเสียงเรียกคิว
เสียงคำขึ้นต้น
(ขอเชิญหมายเลข)
ยังไม่ได้ตั้งค่า
เสียงคำสำหรับช่องบริการ
(ที่ช่องบริการ)
ยังไม่ได้ตั้งค่า
เสียงคำตามท้าย
(ค่ะ)
ยังไม่ได้ตั้งค่า
ตัวอักษร (A–Z)
ช่องบริการหมายเลข 1–12 และห้องผู้จัดการ
ตัวเลข (0–9)
กำหนดเวลาหน่วงหลังจากเรียกคิวเพื่อป้องกันเสียงเรียกซ้อน
กำหนดขนาดกระดาษสำหรับพิมพ์บัตรคิว (ค่าเริ่มต้น 50×70)
หากปิดการใช้งาน ผู้ใช้ต้องกดพิมพ์เอง
จัดการรางวัล
ประเภทรายชื่อ
บันทึกผลรางวัล
จัดการรายชื่อผู้มีสิทธิ์จับรางวัล
0
รายชื่อทั้งหมด
0
ลงทะเบียนแล้ว
0
มีสิทธิ์จับรางวัล
0
ถูกรางวัลแล้ว
| เลขสมาชิก | ชื่อ - สกุล | สังกัด | ประเภท | สถานะ | จัดการ |
|---|
แสดง 0 จาก 0 รายการ
ตั้งค่าการจับรางวัล
ยืนยัน
ข้อความ
Import รายชื่อจาก Excel
รายชื่อที่ Import จะถูกกำหนดเป็นประเภทที่เลือก
คลิกเพื่อเลือกไฟล์ หรือลากไฟล์มาวาง
รองรับ .xlsx, .xls, .csv
จำนวนข้อมูลที่จะนำเข้า: 0 รายการ
ผู้โชคดี
เพิ่มรางวัล
เพิ่มประเภท
เพิ่มบันทึกผลรางวัล
รายละเอียดผลรางวัล
เพิ่มรายชื่อ
จัดการเจ้าหน้าที่
จัดการข้อมูลเจ้าหน้าที่และสิทธิ์การเข้าถึงระบบ
ทั้งหมด
0
ปกติ
0
ผู้ดูแลระบบ
0
ผู้อนุมัติ
0
| ผู้ใช้ | สถานะ | บทบาท | เข้าใช้ล่าสุด | จัดการ |
|---|
ยังไม่มีข้อมูลผู้ใช้
เริ่มต้นเพิ่มผู้ใช้คนแรกเลย
จัดการสมาชิกสหกรณ์
จัดการสมาชิกสหกรณ์ (ไม่รวมเจ้าหน้าที่และกรรมการ) — ใช้ Back Office ด้านล่างเพื่อค้นหา ปลดล็อคแอป ล็อคบัญชี รีเซ็ต PIN ฯลฯ
กำลังเข้าสู่ระบบ Back Office อัตโนมัติ...
ล็อกอิน Back Office ในกรอบด้านบนด้วย user/pass ของ icoopsiam (ระบบ icoopsiam จะจำการล็อกอินไว้เองจนกว่าจะหมดอายุ) · ถ้ากรอบไม่แสดงผล ให้กด เปิด Back Office ในแท็บใหม่
ดึงข้อมูลจาก ATT2Mobile อัตโนมัติ
ดึงอัตโนมัติปิด — เปิดใช้ด้านบนเพื่อดึงข้อมูลและบันทึก Firestore ตามช่วงเวลาที่กำหนด
เมื่อเปิดใช้แล้ว ระบบจะดึงและส่ง LINE อัตโนมัติทั้งเมื่อเปิดหน้านี้ และบนเซิร์ฟเวอร์ (NAS) — ไม่ต้องเปิดหน้าเว็บค้างไว้
ข้อมูลเข้า-ออกงาน
| ชื่อ | เข้า | เข้าเลต | ออก |
|---|---|---|---|
| กดปุ่ม "ดึงข้อมูลจาก ATT2Mobile" เพื่อโหลดข้อมูล | |||
✓ หลังเวลาเข้า/ออก = ส่ง LINE แจ้งแล้ว — กดดึงข้อมูลอีกครั้งหรือรีเฟรชหน้าระหว่างดูวันที่นี้เพื่ออัปเดตสัญลักษณ์
ข้อมูลจาก ATT2Mobile (NKBKCOOP เวลาทำงาน 08:30–16:30) — ดึงข้อมูลวันนี้หรือย้อนหลังได้แล้วกดบันทึกลง Firestore
กำหนดเวลาเข้างานและเข้าเลต
ใช้คำนวณแสดงสถานะมาสายในสรุปรายเดือน (เช่น สาย 10 นาที / สายเกิน 15 นาที(20))
จุดสแกนแอป NKBKCOOPMG ตั้งที่
รายงานเข้า-ออกงาน ประจำเดือน
เข้า-ออกงานรายเดือน อ้างอิงการลา วันหยุดสหกรณ์ และเสาร์-อาทิตย์
กำลังโหลดสรุปเดือนล่าสุด...
แก้ไขเวลาเข้า-ออก
เลือกวันที่และชื่อเจ้าหน้าที่
-
-
Admin › โมเน่ AI Console
ศูนย์ควบคุม AI แชท
จัดการผู้ใช้ แชต รูป พรอมต์ พื้นที่ และตั้งค่าระบบ — สำหรับ ai.nkbkcoop.com
การใช้งาน OpenAI API
ติดตามการใช้งานโดยประมาณต่อเดือน — เปรียบเทียบกับวงเงินที่ตั้งไว้ (ค่าใช้จ่ายจริงดูที่ OpenAI Billing)
- เปิด OpenAI Billing Limits แล้วเพิ่ม Hard limit (เช่น $20)
- ตรวจ Credit Grants ว่าเครดิตยังไม่หมด (ถ้าหมด → ผูกบัตรเครดิตเป็น Auto recharge)
- กลับมาที่หน้านี้ แล้วกด “รีเซ็ตสถานะวงเงิน” ด้านล่าง
หมายเหตุ: หากข้ามขั้น 1-2 → ระบบจะติด “วงเงินเต็ม” กลับมาทันทีที่ผู้ใช้ส่งแชต เพราะ OpenAI ฝั่งจริงยังปฏิเสธคำขออยู่
เมื่อทำขั้น 1-2 เรียบร้อยแล้ว กดปุ่มนี้เพื่อล้างสถานะ “วงเงินเต็ม” ในระบบ
ตั้งให้ตรงกับ Credit Grants ใน OpenAI Billing (เช่น $15.00)
ใช้คำนวณเปอร์เซ็นต์ในแดชบอร์ด — ตั้งให้ใกล้เคียง Hard limit ใน OpenAI
แสดงสถานะ "ใกล้เต็ม" เมื่อถึงเปอร์เซ็นต์นี้
พื้นที่จัดเก็บ & การแนบไฟล์ (เว็บ AI)
โควต้าต่อผู้ใช้สำหรับรูป ไฟล์ และประวัติแชต — จำกัดการแนบต่อครั้งและขนาดไฟล์
เมื่อแชตเต็ม ระบบจะแจ้งให้เริ่มแชตใหม่ (ค่าเริ่มต้น 1 GB)
บุคลิกโมเน่
การอนุญาต LINE
เลือกผู้ติดตามและกลุ่มที่ให้โมเน่ตอบ — ดึงจาก LINE Dashboard
โหลดรายชื่อ...
โหลดกลุ่ม...
โหมดกลุ่ม
แยก สมอง (กฎ/MD) ตามประเภทผู้ใช้ — ระบบตรวจสอบบัญชีที่ผูก LINE ก่อนเลือกชุดกฎ (ใช้ OpenAI ตัวเดียวกัน)
กฎสำหรับเจ้าหน้าที่และกรรมการ
ใช้เมื่อผู้ส่งผูกบัญชีแล้วและอยู่ในกลุ่ม เจ้าหน้าที่ หรือ กรรมการ — ไม่ให้ AI ตอบซ้ำกับ Auto Reply
กฎสำหรับสมาชิกสหกรณ์
ใช้เมื่อผู้ส่งเป็นสมาชิกสหกรณ์ หรือแชทจากเว็บหลัก (แชทด่วน) — ไม่ต้องผูกบัญชี · บริการสมาชิก เช่น เงินฝาก เงินกู้ ช่องทางติดต่อ
บุคคลอ้างอิง (ผู้จัดการ / ประธาน)
จัดการโปรแกรมและคอมพิวเตอร์
การเชื่อมต่อเครื่อง (Live) — ตรวจว่าเครื่องไหนส่งข้อมูลถึงเซิร์ฟเวอร์
แอป NKBKCOOPMG — อุปกรณ์มือถือ
เจ้าหน้าที่ที่ล็อกอินแอปและอุปกรณ์ที่ใช้งาน
ตั้งค่าระบบ
จัดการการตั้งค่าทั้งหมดของระบบ Admin Panel
ข้อมูลองค์กร
ข้อมูลพื้นฐานขององค์กร/สำนักงาน
แสดงเป็นชื่อแท็บเบราว์เซอร์และหัวข้อหลักของระบบ
ลิขสิทธิ์และ Footer
ข้อความที่แสดงด้านล่างของเว็บไซต์
จุดสแกนเข้า-ออกงาน (แอป NKBKCOOPMG)
เจ้าหน้าที่สแกนได้เมื่ออยู่ภายในรัศมีจากพิกัดสำนักงาน
ตั้งค่าที่นี่ — ไม่ต้องไปเมนูเข้า-ออกงาน
พิกัดจาก Google Maps สำนักงานสหกรณ์ · รัศมีเริ่มต้น 40 เมตร
เวลาเข้า-ออกงาน
ใช้คำนวณมาสาย / แจ้งเตือน / นโยบายทำการ (แก้ได้ที่นี่หรือเมนูเข้า-ออกงาน)
ยืนยันใบหน้า (แอป NKBKCOOPMG)
จับคู่รูปตอนกดกับรูปโปรไฟล์ — ต้องตั้ง AWS Rekognition (Secret: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REKOGNITION_REGION)
โอที (OT) — เตรียมระบบ
เก็บนโยบายล่วงหน้า — แอปยังไม่คำนวณ OT อัตโนมัติ รอบถัดไปจะใช้เวลาออก + กติกาด้านล่าง
แนวทางรอบถัดไป: นับจากเวลาออกงานที่ตั้ง + นาที buffer → ปัดตามกติกา → ส่งอนุมัติถ้าเปิด · รองรับ OT วันหยุด/เสาร์-อาทิตย์แยกชุดกติกาได้
โลโก้และไอคอน
รูปภาพที่ใช้แสดงตัวตนขององค์กร
โลโก้หลัก
แนะนำ: PNG หรือ SVG, ขนาด 200x200px
Favicon (ไอคอนแท็บ)
แนะนำ: ICO, PNG, ขนาด 32x32 หรือ 64x64px
สีธีม
ปรับแต่งสีหลักของระบบ
ตั้งค่าการอัปโหลดรูปภาพ
กำหนดปลายทางและการตั้งค่าการอัปโหลด
ตั้งค่า Cloudinary
* ต้องเป็น API ฝั่งเซิร์ฟเวอร์ที่รับ { public_id } และลบไฟล์
ตั้งค่า Firebase Storage
ตั้งค่า Custom API
การประมวลผลรูปภาพ
ตั้งค่าการบีบอัดและปรับขนาด
บีบอัดเป็น WebP
ลดขนาดไฟล์ โหลดเร็วขึ้น
ลบรูปเก่าอัตโนมัติ
เมื่ออัปโหลดรูปใหม่แทนที่
แนะนำ: 512px สำหรับรูปโปรไฟล์
แนะนำ: 80% สำหรับความสมดุล
ตั้งค่าโดเมน nkbkcoop.com ใน Cloudflare Email Sending แล้วใส่ API Token ใน Cloud Functions
กำลังตรวจ API...
ทดสอบส่งอีเมล
เทมเพลตอีเมล
จัดการรูปแบบอีเมลสำหรับการแจ้งเตือนต่างๆ
คำขอลางานใหม่
แจ้งผู้อนุมัติเมื่อมีคำขอลาใหม่
อนุมัติการลา
แจ้งผู้ขอลาเมื่อได้รับอนุมัติ
ไม่อนุมัติการลา
แจ้งผู้ขอลาเมื่อไม่ได้รับอนุมัติ
ระบบใกล้หมดอายุ
แจ้งเตือนก่อนระบบ/บริการหมดอายุ
รีเซ็ตรหัสผ่าน
ส่งรหัสผ่านชั่วคราวให้ผู้ใช้
ยินดีต้อนรับ
ส่งให้ผู้ใช้ใหม่พร้อมข้อมูลบัญชี
ตัวแปรที่ใช้ได้ใน Template
{{org_name}}
{{user_name}}
{{user_email}}
{{leave_type}}
{{leave_dates}}
{{leave_days}}
{{leave_reason}}
{{approver_name}}
{{system_name}}
{{expiry_date}}
{{days_left}}
{{temp_password}}
ผู้รับอีเมลแจ้งเตือน
กำหนดอีเมลที่จะได้รับการแจ้งเตือนจากระบบ
คั่นด้วยเครื่องหมาย , หากมีหลายอีเมล
จะได้รับอีเมลเมื่อมีคำขอลาใหม่
จะได้รับอีเมลเมื่อระบบ/บริการใกล้หมดอายุ
ตั้งค่าการแจ้งเตือน
เลือกรับการแจ้งเตือนที่ต้องการ
แจ้งเตือนทางอีเมล
รับอีเมลเมื่อมีกิจกรรมสำคัญ
แจ้งเตือนทาง LINE
รับข้อความ LINE เมื่อมีคำขอใหม่
แจ้งเตือนคำขอลางาน
แจ้งเตือนเมื่อมีคำขอลาใหม่
แจ้งเตือนระบบหมดอายุ
แจ้งเตือนก่อนระบบ/บริการหมดอายุ
ChatGPT โมเน่
แอป NKBKConnext — ถ้าไม่เปิดที่นี่จะใช้ตั้งค่าจาก AI แชท LINE (โมเน่) อัตโนมัติ · OpenAI API
เปิดใช้งานแยกจาก LINE
เปิดเมื่อต้องการ API Key / Model คนละชุดกับ LINE
อนุญาตทุกคนที่ล็อกอินแอป
แนะนำเปิด — ปิดแล้วระบุ username ด้านล่าง
ความปลอดภัยบัญชี
จัดการรหัสผ่านและการยืนยันตัวตน
เปลี่ยนรหัสผ่าน
อัปเดตรหัสผ่านของคุณ
การยืนยันตัวตนสองขั้นตอน (2FA)
เพิ่มความปลอดภัยให้บัญชี
Back Office (icoopsiam)
บันทึก user/pass สำหรับ login อัตโนมัติในหน้า จัดการสมาชิกสหกรณ์ — เฉพาะผู้ดูแลระบบ
รหัสผ่านเก็บเข้ารหัสบนเซิร์ฟเวอร์ — ไม่แสดงอีกครั้งหลังบันทึก
เซสชันและการเข้าสู่ระบบ
จัดการการเข้าสู่ระบบ
จำการเข้าสู่ระบบ
ไม่ต้อง Login ใหม่เมื่อกลับมา
การตั้งค่าจะถูกบันทึกไปยัง Firestore
| ชื่อระบบและบริการ | วันเริ่มใช้งาน | วันหมดอายุ | วันต้องต่ออายุ | ไลเซนส์ | คงเหลือ | ราคา | ผู้จำหน่าย | ใช้ที่เครื่อง | สถานะ | จัดการ |
|---|
สิทธิ์เมนู NKBKConnext
กำหนดว่าบทบาท/ตำแหน่งใดใช้เมนูอะไรได้ในแอปเดสก์ท็อป (ข้อมูลซิงก์ไปยังแอปทุกเครื่อง)
แก้ชื่อเมนู/ลบได้ที่นี่ — ผลจะมีทั้งฝั่งเว็บและแอป
ยกเว้น ผู้ดูแลระบบ — ผ่านทุกเมนูโดยอัตโนมัติ (bypass matrix)
ต้องการ override รายบุคคล? ไปที่หน้า จัดการผู้ใช้ → แก้ไขผู้ใช้ → แท็บ "สิทธิ์เมนู"
ส่งการแจ้งเตือน
ส่งข้อความ/แจ้งเตือนไปยังผู้ใช้แอป NKBKConnext — ทั้งระบบ, ตามบทบาท, ตามตำแหน่ง, หรือเฉพาะคน
ข้อความใหม่
ตัวอย่างการแจ้งเตือน
แจ้งเตือนจะเด้งเป็น Windows Toast ที่มุมเดสก์ท็อป + มี 🔔 กระดิ่งในแอป
แชตโมเน่ — Inbox สมาชิก
แชตจาก widget เว็บสาธารณะ → Firestore member_chat_conversations
กำลังโหลด...
เลือกการสนทนา
ข้อความจากฟอร์มติดต่อเว็บ
รับจากหน้า เว็บสาธารณะ /contact → เก็บใน Firestore cms_contact_inquiries
กำลังโหลด...
แจ้งโอนเงินจากเว็บ
จาก /infrom-payment → Firestore cms_payment_notifications
ตั้งค่าตรวจสลิปอัตโนมัติ · Thunder API
config/slip_verify — อ่าน/เขียนเฉพาะแอดมิน
กำลังโหลด...
บันทึกการใช้งาน
โครงสร้างเจ้าหน้าที่
จัดการฝ่ายงาน, งาน, หน่วยบริการ และตำแหน่ง
แผนผังโครงสร้างเจ้าหน้าที่
ตั้งค่าว่าแต่ละฝ่ายรายงานผู้จัดการโดยตรงหรือผ่านรองผู้จัดการได้ที่แท็บ → คอลัมน์ «สายรายงานในแผนผัง»
ฝ่ายงาน
| ลำดับ | ชื่อฝ่าย | หัวหน้าฝ่าย | สายรายงานในแผนผัง | จำนวนคน | จัดการ |
|---|---|---|---|---|---|
| กำลังโหลด... | |||||
งาน
| ลำดับ | ชื่องาน | สังกัดฝ่าย | จำนวนคน | จัดการ |
|---|---|---|---|---|
| กำลังโหลด... | ||||
หน่วยบริการ
| ลำดับ | ชื่อหน่วยบริการ | สังกัดงาน | จัดการ |
|---|---|---|---|
| กำลังโหลด... | |||
ตำแหน่ง
| ลำดับ | ชื่อตำแหน่ง | ระดับอนุมัติ | จัดการ |
|---|---|---|---|
| กำลังโหลด... | |||
โครงสร้างกรรมการ
แผนผังโครงสร้างกรรมการ
ชุดกรรมการ
คณะกรรมการ
คณะกรรมการจะใช้ร่วมกันทุกชุด สามารถกำหนดสมาชิกในแต่ละคณะได้จากหน้าแก้ไขกรรมการ
ตำแหน่งกรรมการ
ตำแหน่งจะเรียงตามลำดับความสำคัญ (ประธาน → รองประธาน → ฯลฯ)
| ลำดับ | ชื่อตำแหน่ง | จัดการ |
|---|---|---|
| กำลังโหลด... | ||
กำลังโหลด...
เพิ่มฝ่ายงาน
ใช้กำหนดตำแหน่งคอลัมน์ฝ่ายในแผนผังเท่านั้น ไม่เปลี่ยนข้อมูลพนักงาน
เพิ่มงาน
เพิ่มหน่วยบริการ
เพิ่มตำแหน่ง
เพิ่มลิงก์ระบบ
ใช้ ./ สำหรับ root, ../ สำหรับโฟลเดอร์นอก admin, # สำหรับ hash
สถิติการลา
0
รออนุมัติ
0
รายการทั้งหมด
0
อนุมัติแล้ว
0
วันลารวม
0
จำนวนคนลา
คำขอลางาน
ประเภทวันลา
กำหนดประเภทและโควตาวันลาประจำปี
วันหยุดสหกรณ์
วันหยุดราชการและวันหยุดพิเศษ
ตั้งค่าผู้อนุมัติการลา
กำหนดผู้อนุมัติระดับ 1 (ผู้จัดการ) และระดับ 2 (หัวหน้างาน)
เจ้าหน้าที่
การเงิน
ลากิจ
ลาป่วย
ลากิจ
ลาป่วย
บริหาร
ลากิจ
ลาป่วย
ลาพักร้อน
ลากิจ
ลาป่วย
ลากิจ
ลาป่วย
ผู้ติดตามทั้งหมด
-
ผู้ติดตาม LINE OA
ผูกบัญชีแล้ว
-
ผู้ใช้ที่ผูกบัญชีกับระบบ
ข้อความวันนี้
-
ข้อความที่ส่งออก
Auto Reply
-
กฎที่ใช้งานอยู่
กิจกรรมล่าสุด
ไม่มีกิจกรรมล่าสุด
Quick Actions
รายชื่อผู้ติดตาม
| ผู้ติดตาม | LINE User ID | ผูกบัญชี | กลุ่มไลน์ | วันที่ติดตาม | การจัดการ |
|---|---|---|---|---|---|
|
กำลังโหลดข้อมูล... |
|||||
Messaging API
ตั้งค่าสำหรับส่งข้อความและรับ Webhook
Webhook URL
คัดลอก URL นี้ไปตั้งค่าใน LINE Developers Console → Messaging API → Webhook URL
LINE Login
ตั้งค่าสำหรับระบบ Login ด้วย LINE และผูกบัญชี
ใส่ URL นี้ใน LINE Developers Console → LINE Login → Callback URL
ข้อความต้อนรับ
เปิดใช้ข้อความต้อนรับ
ส่งข้อความอัตโนมัติเมื่อมีผู้ติดตามใหม่
ใช้ {name} แทนชื่อผู้ใช้, {date} แทนวันที่, {time} แทนเวลา
ทดสอบส่งข้อความ
ส่งข้อความทดสอบไปยัง LINE User ID
ดู User ID ได้จากหน้า LINE Dashboard → ผู้ติดตาม
สถานะ Webhook Server
กฎตอบกลับอัตโนมัติ
ยังไม่มีกฎตอบกลับอัตโนมัติ
กดปุ่ม "เพิ่มกฎใหม่" เพื่อเริ่มต้น
Templates สำเร็จรูป
Broadcast ข้อความ
ส่งข้อความถึงผู้ติดตามทุกคนหรือเลือกกลุ่มเป้าหมาย
สูงสุด 5,000 ตัวอักษร | ใช้ {name} แทนชื่อ
รองรับ JPEG, PNG ขนาดไม่เกิน 10MB
กลุ่มเป้าหมาย
ประวัติการส่ง Broadcast
ยังไม่มีประวัติการส่ง
Rich Menu Designer
คลิกที่ช่องเพื่อตั้งค่า Action
ตั้งค่าช่อง
เลือกช่องที่ต้องการตั้งค่า
Rich Menu ที่สร้างไว้
ยังไม่มี Rich Menu ที่สร้างไว้
ภาพรวมโครงสร้างระบบ
แผนผังการเชื่อมต่อระบบทั้งหมดของสหกรณ์ออมทรัพย์สาธารณสุขหนองคาย
แผนผังสถาปัตยกรรม
┌─────────────────────────────────────────────────────────────────┐
│ 👥 Client Layer │
├─────────────┬─────────────┬─────────────┬─────────────┬─────────┤
│ 🖥️ Admin │ 📱 LINE │ 📅 Portal │ 📺 Queue │ 🎁 │
│ Panel │ Management │ ขอลา │ Display │ Lucky │
│ │ │(LINE Login)│ │ Draw │
└─────┬───────┴──────┬──────┴──────┬──────┴──────┬──────┴────┬────┘
│ │ │ │ │
└──────────────┴──────────┬──┴─────────────┴───────────┘
│
┌───────────▼───────────┐
│ 🗄️ NAS Synology │
│ ┌─────────────────┐ │
│ │ 📁 /volume1/web │ │
│ │ └─ /admin │ │
│ │ └─ /portal │ │
│ └─────────────────┘ │
│ ┌─────────────────┐ │
│ │ ⚙️ Node.js │ │
│ │ line-webhook │ │
│ └─────────────────┘ │
└───────────┬───────────┘
│
┌───────────────────────┼───────────────────────┐
│ │ │
┌───────▼───────┐ ┌───────▼───────┐ ┌───────▼───────┐
│ 🔥 Firebase │ │ 💬 LINE API │ │ 📧 Email │
│ Firestore │ │ Messaging │ │ Service │
└───────────────┘ └───────────────┘ └───────────────┘
สิทธิ์การเข้าถึง
| ระบบ | Admin | เจ้าหน้าที่ | กรรมการ | สมาชิก | วิธีเข้า |
|---|---|---|---|---|---|
| Admin Panel | ✅ | ❌ | ❌ | ❌ | Email/Password |
| Portal (ขอลา) | ✅ | ✅ | ✅ | ❌ | LINE Login /portal |
| จับฉลาก | ✅ | ✅ | ✅ | ✅ | QR Code |
| คู่มือระบบ | ✅ | ❌ | ❌ | ❌ | ผ่าน Admin Panel |
ลิงก์ระบบทั้งหมด
Base URL: admin.nkbkcoop.com (หรือ localhost เมื่อรันทดสอบ)
| ระบบ | Path / URL | หมายเหตุ | จัดการ |
|---|
Firebase & Collections
โครงสร้างฐานข้อมูล Firestore ทั้งหมด
Firebase Configuration
const firebaseConfig = {
apiKey: "AIzaSyBEUdu_TdTfRvpBpVzdVoHqfQAtrIXAAAw",
authDomain: "admin-panel-nkbkcoop-cbf10.firebaseapp.com",
projectId: "admin-panel-nkbkcoop-cbf10",
storageBucket: "admin-panel-nkbkcoop-cbf10.firebasestorage.app"
};
Collections ทั้งหมด
users
ข้อมูลผู้ใช้งาน
programs
โปรแกรมและคอมฯ
systems
ระบบและบริการ
config
ตั้งค่าระบบ
leaves
คำขอลางาน
leaveTypes
ประเภทการลา
holidays
วันหยุด
line_followers
ผู้ติดตาม LINE
line_autoreply
ตอบกลับอัตโนมัติ
luckyDraw_prizes
รางวัลจับฉลาก
luckyDraw_participants
ผู้เข้าร่วม
luckyDraw_winners
ผู้ถูกรางวัล
ระบบย่อย
คำอธิบายระบบย่อยทั้งหมดใน Admin Panel
Admin Panel
ระบบจัดการหลักสำหรับผู้ดูแลระบบ
- • จัดการผู้ใช้งาน
- • จัดการโปรแกรมและคอมพิวเตอร์
- • จัดการระบบและบริการ
- • ตั้งค่าระบบ
LINE Integration
ระบบจัดการ LINE Official Account
- • Dashboard สถิติ
- • ตอบกลับอัตโนมัติ
- • Broadcast ข้อความ
- • Rich Menu
ระบบลางาน
ระบบขอลาและอนุมัติลางาน
- • ลาป่วย (30 วัน/ปี)
- • ลากิจ (12 วัน/ปี)
- • ลาพักร้อน (ตามอายุงาน)
- • ประวัติการลา
ระบบจัดการคิว
ระบบจัดคิวบริการ
- • จอแสดงคิว
- • เรียกคิว
- • ตั้งค่าเสียงเรียก
ระบบจับฉลาก
จับฉลากประชุมใหญ่ประจำปี
- • จัดการรางวัล/หมวดหมู่
- • ลงทะเบียนผู้เข้าร่วม
- • หน้าจอจับฉลาก
- • Export รายงาน
Portal ขอลา
/portal — สำหรับเจ้าหน้าที่และกรรมการ
- • เข้าด้วย LINE Login
- • ส่งคำขอลางาน
- • ดูประวัติการลา
- • ปฏิทินวันหยุด
API & การเชื่อมต่อ
Webhook, LINE Login และการตั้งค่า NAS
LINE Webhook Server
Node.js server สำหรับรับ events จาก LINE
# เริ่มต้น Server
cd /volume1/web/line-webhook
/var/packages/Node.js_v20/target/usr/local/bin/node server.js
# Restart Server
pkill -f "node server.js"
cd /volume1/web/line-webhook && node server.js &
Webhook URL: https://api-line.nkbkcoop.com/line/webhook
LINE Login Setup
- 1สร้าง LINE Login Channel ที่ LINE Developers Console
- 2สร้าง LIFF App (Size: Full, Endpoint: https://admin.nkbkcoop.com/portal)
- 3คัดลอก LIFF ID ไปใส่ใน Portal (admin/portal/)
- 4ทดสอบที่ https://admin.nkbkcoop.com/portal
โครงสร้างไฟล์ NAS
/volume1/web/
├── admin/
│ ├── index.html # Admin Panel
│ ├── portal/
│ │ └── index.html # Portal ขอลา
│ └── queue/
│ └── index.html # จอแสดงคิว
│
└── line-webhook/
├── server.js # Webhook server
└── package.json
Hash Routing — แก้ปัญหา 404 เมื่อ Refresh
ลิงก์เมนูใช้ path URL (เช่น /users, /meetingdocs) — ไม่ใช้ # Hosting rewrite ไป index.html แล้ว client อ่าน pathname
ส่วนหลัง # ไม่ถูกส่งไปยังเซิร์ฟเวอร์ จึงไม่มีปัญหา 404
แบบสอบถาม / แบบทดสอบ
เลือกแบบสอบถามเพื่อดูแดชบอร์ดสรุปผล กราฟ และการวิเคราะห์
กำลังโหลด...
เพิ่ม/แก้ไขกฎตอบกลับ
ใช้ {name} แทนชื่อ, {date} แทนวันที่, {time} แทนเวลา