Skip to content

Repository files navigation

📊 ระบบวิเคราะห์ผลประเมินโครงการ

เว็บวิเคราะห์ข้อมูลแบบประเมินผลการดำเนินการโครงการของสโมสรฯ — โยนไฟล์ .xlsx ที่ดาวน์โหลดจาก Google Forms เข้าไป แล้วได้ผลวิเคราะห์ครบทุกด้าน พร้อมส่วน "รายงานราชการ" ที่คัดลอกไปวางในเล่มสรุปผลโครงการ (Microsoft Word) ได้ทันที

🌐 ใช้งานออนไลน์: https://sunkinincode.github.io/eval-analyzer/

ถึงจะเปิดผ่านเว็บ ข้อมูลในไฟล์ .xlsx ก็ยังประมวลผลอยู่ในเบราว์เซอร์ของผู้ใช้เท่านั้น ไม่มีการส่งขึ้นเซิร์ฟเวอร์ใด ๆ (ประวัติ/ผู้ใช้เก็บใน IndexedDB ของแต่ละเครื่อง)

วิธีเปิดใช้งาน

วิธีที่ 1 (ง่ายสุด): ดับเบิลคลิก index.html เปิดในเบราว์เซอร์ได้เลย (ทุกอย่างทำงานในเครื่อง ไม่ต้องต่อเน็ต ไม่ต้องมีเซิร์ฟเวอร์ — ยกเว้นปุ่ม "ลองใช้ด้วยข้อมูลตัวอย่าง" ที่ต้องเปิดผ่านเซิร์ฟเวอร์ หรือใช้วิธีลากไฟล์ sample-data.xlsx มาวางแทน)

วิธีที่ 2: เปิดผ่านเซิร์ฟเวอร์ในเครื่อง

cd "โฟลเดอร์นี้"
python3 -m http.server 8787
# แล้วเปิด http://localhost:8787

ขั้นตอนการใช้

  1. เข้า Google Forms → การตอบกลับ → ดาวน์โหลดเป็น .xlsx (หรือเปิดใน Google Sheets แล้ว File → Download → Microsoft Excel)
  2. ลากไฟล์มาวางในหน้าเว็บ
  3. ตรวจตัวอย่างก่อนนำเข้า: เลือกชีต และดูจำนวนแถว/คอลัมน์กับชนิดคำถามที่ระบบจำแนก
  4. ระบบจะตรวจชนิดคำถามอัตโนมัติ:
    • คะแนน 1–5 (คำถามตาราง Google Forms ในรูปแบบ หัวข้อ [รายการ] จะถูกจัดกลุ่มเป็น "ด้าน" ให้เอง) → x̄, S.D., ความถี่, ร้อยละ, ระดับผล
    • SDGs / คำตอบสองค่า ("สอดคล้อง / บรรลุ" – "ไม่สอดคล้อง") → ร้อยละความสอดคล้อง
    • ข้อมูลทั่วไป (สถานะ เพศ ชั้นปี ฯลฯ) → ความถี่ + ร้อยละ
    • ข้อความปลายเปิด (ข้อเสนอแนะ) → รวมรายการพร้อมนับซ้ำ
    • ตรวจผิดตรงไหน แก้ได้ที่แท็บ ตั้งค่าคอลัมน์
  5. กรองผลตามกลุ่มผู้ตอบได้จากแถบด้านบน (นักเรียน / นักศึกษา / ครู ฯลฯ)
  6. เปิดแท็บ 💼 สรุปผู้บริหาร เพื่อดูผลสำคัญ 1 หน้า แล้วกด บันทึก PDF (เลือก Save as PDF ในหน้าพิมพ์) หรือคัดลอกเพื่อส่งต่อ
  7. ไปที่แท็บ 📄 รายงานราชการ → พิมพ์ชื่อโครงการ → กด คัดลอก แล้วไปวางใน Word ได้เลย (ฟอนต์ TH Sarabun 16pt ตารางเส้นทึบ พร้อมคำบรรยายใต้ตารางแบบงานวิจัย) หรือดาวน์โหลดเป็น .doc / พิมพ์เป็น PDF

ผู้ใช้งานและประวัติย้อนหลัง

  • เปิดครั้งแรกระบบจะให้ กรอกชื่อ/ตำแหน่ง ก่อนใช้งาน (เก็บในเบราว์เซอร์เครื่องนั้น ไม่ส่งขึ้นอินเทอร์เน็ต) เพื่อบันทึกว่าใครวิเคราะห์ข้อมูลครั้งไหน — ดูรายชื่อผู้ใช้ได้ที่แท็บ 🕘 ประวัติ
  • ทุกไฟล์ที่อัปโหลดจะถูก บันทึกเข้าประวัติอัตโนมัติ (IndexedDB ของเบราว์เซอร์) เปิดดูซ้ำได้จากแท็บประวัติหรือหน้าแรก โดยไม่ต้องอัปโหลดไฟล์ใหม่ ชื่อโครงการและการตั้งค่าคอลัมน์ที่แก้ไว้จะถูกจำไปด้วย
  • ประวัติจะถูก ลบอัตโนมัติเมื่อเก็บครบ 15 วัน (และกดลบเองได้ทุกเมื่อ)
  • ข้อจำกัด: ประวัติผูกกับเบราว์เซอร์+เครื่องที่ใช้ ไม่แชร์ข้ามเครื่อง (ถ้าต้องการใช้ร่วมกันหลายคนจริง ๆ ต้องมีเซิร์ฟเวอร์กลาง — แจ้งได้ถ้าต้องการ)

ใช้การตั้งค่ากับแบบประเมินรอบถัดไป

หลังนำเข้าข้อมูล ให้กด ตั้งค่า บนแถบด้านบน แล้วเลือก ส่งออกการตั้งค่า เพื่อบันทึกชนิดคอลัมน์ การจัดด้าน การรวมตัวเลือก บทบาทผู้ตอบ และตัวเลือกรายงานเป็น ไฟล์ .evalconfig ไฟล์นี้ไม่มีคำตอบของผู้ประเมิน นำมาใช้กับแบบประเมินรูปแบบเดิมได้จาก ปุ่ม นำเข้าการตั้งค่า หลังเปิดไฟล์ข้อมูลชุดใหม่แล้ว

SDGs

แท็บ SDGs แสดงการ์ดพร้อม โลโก้ทางการของ UN (ดาวน์โหลดจาก sdgs.un.org เก็บไว้ใน assets/sdg/ ใช้งานออฟไลน์ได้) ร้อยละความสอดคล้อง แถบความคืบหน้า และป้ายสรุปผลตามเกณฑ์ ≥ 50%

ตัวเลือกในหน้ารายงาน

  • แนบรูปแผนภูมิ — แทรกกราฟพื้นขาวพร้อมเลขแผนภูมิ
  • แสดงความถี่รายระดับ (5–1) — เพิ่มคอลัมน์จำนวน/ร้อยละของแต่ละระดับคะแนนในตาราง
  • ใช้เลขไทย — แปลงตัวเลขทั้งรายงานเป็นเลขไทยตามธรรมเนียมหนังสือราชการ

เกณฑ์การแปลผล

ค่าเฉลี่ย ระดับ
4.51–5.00 มากที่สุด
3.51–4.50 มาก
2.51–3.50 ปานกลาง
1.51–2.50 น้อย
1.00–1.50 ควรปรับปรุง

ความสอดคล้อง SDGs ถือเกณฑ์ผู้ตอบ ≥ ร้อยละ 50 · S.D. คำนวณแบบกลุ่มตัวอย่าง (n−1)

โครงสร้างไฟล์

index.html          หน้าเว็บหลัก (เลย์เอาต์ sidebar)
app.js              ส่วนควบคุม UI, กราฟ, รายงาน และประวัติ/ผู้ใช้ (IndexedDB)
analysis.js         แกนวิเคราะห์ข้อมูลแบบ pure: แปลงคะแนน, สถิติ, SDGs และการจัดกลุ่ม
storage.js          ตัวเชื่อม IndexedDB สำหรับประวัติและผู้ใช้ (ไม่ผูกกับ UI)
ingest-worker.js    อ่านไฟล์ Excel นอก UI thread สำหรับไฟล์ขนาดใหญ่ (มี fallback อัตโนมัติ)
styles.css          ธีมโมเดิร์นสว่าง/มืดอัตโนมัติ (ฟอนต์ Anuphan)
vendor/             ไลบรารี SheetJS + Chart.js + ไอคอน Lucide + ฟอนต์ Anuphan (ออฟไลน์ทั้งหมด)
assets/sdg/         โลโก้ SDG ทางการ 17 เป้าหมาย (จาก sdgs.un.org)
sample-data.xlsx    ข้อมูลตัวอย่าง 92 คำตอบตามโครงสร้างแบบประเมินจริง
tools/make-sample.js  สคริปต์สร้างข้อมูลตัวอย่างใหม่ (node tools/make-sample.js)
tests/analysis.test.mjs  ชุดทดสอบแกนวิเคราะห์ข้อมูล

ตรวจสอบก่อนเผยแพร่

node --test tests/analysis.test.mjs
node --check app.js

ความทนทานต่อไฟล์ที่หลากหลาย

  • เลือกชีตที่มีข้อมูลมากที่สุดให้อัตโนมัติ (เปลี่ยนชีตเองได้จากแถบบน)
  • ข้ามแถวชื่อเรื่อง/แถวว่างเหนือหัวตารางให้เอง
  • คอลัมน์ที่ไม่มีชื่อหัวจะไม่ถูกตัดทิ้ง (ตั้งชื่อ "คอลัมน์ที่ n" ให้)
  • คำตอบแบบข้อความ ("มากที่สุด", "เห็นด้วยอย่างยิ่ง", "5 - มากที่สุด") แปลงเป็นคะแนน 1–5 ให้อัตโนมัติ
  • จำนวนผู้ตอบต่อคำถามดูได้ที่แท็บ "ตั้งค่าคอลัมน์" (คอลัมน์ "ตอบแล้ว") — ตัวเลขไม่เท่ากันเป็นเรื่องปกติเพราะแบบฟอร์มแยกชุดคำถามตามกลุ่มผู้ตอบ

ข้อมูลทุกอย่างประมวลผลในเบราว์เซอร์ ไม่มีการส่งออกนอกเครื่อง (สอดคล้อง PDPA)

🔗 เชื่อม Google Sheet แบบสด (v24+)

ดึงคำตอบตรงจาก Google Sheet ของฟอร์ม แล้วกด "ซิงค์" เพื่อได้ค่าล่าสุด (ข้อมูลวิ่งตรง เบราว์เซอร์ ↔ Google ไม่ผ่านเซิร์ฟเวอร์ใด) — Google ไม่ push การเปลี่ยนแปลง ฉะนั้น "เรียลไทม์" = กดซิงค์เมื่อต้องการ

ตั้งค่าครั้งเดียว (ต้องมี Google Cloud project ของคุณเอง):

  1. เปิด console.cloud.google.com → สร้างโปรเจกต์
  2. APIs & Services → Library → เปิดใช้ Google Sheets API
  3. OAuth consent screen → External → เพิ่มอีเมลตัวเองใน Test users (ได้ถึง 100 คนโดยไม่ต้องผ่าน verification)
  4. Credentials → Create → OAuth client IDWeb application
    • Authorized JavaScript origins ใส่: https://sunkinincode.github.io (และ http://localhost:8787 ถ้าทดสอบในเครื่อง)
  5. คัดลอก Client ID มาวางในกล่อง "ตั้งค่าครั้งแรก" ในแอป (เก็บใน localStorage จำไว้)

จากนั้นกด "เชื่อม Google Sheet" → วางลิงก์ชีต → อนุญาต Google → ระบบอ่านชีตที่ใหญ่ที่สุด มาวิเคราะห์ พร้อม ล็อกอินด้วยบัญชี Google จริง (ชื่อ/อีเมล) ให้อัตโนมัติ

👥 ส่งงานให้คนอื่นตรวจก่อน (ไฟล์ .evalproj)

การประเมินไม่ได้ทำคนเดียว — คนที่ไม่เชี่ยวชาญทำเสร็จแล้วส่งมาให้ตรวจก่อนได้:

  1. ผู้ทำกด "ส่งให้ตรวจ" (แถบบน) → ได้ไฟล์ .evalproj → ส่งทาง LINE/เมล
  2. ผู้ตรวจ ลากไฟล์ .evalproj เข้าแอป → เห็นการวิเคราะห์เป๊ะเหมือนกัน + แถบ "กำลังตรวจงาน" → ตรวจตัวเลข/แก้การจัดด้านได้ทุกหน้า → ใส่ความเห็น → กด "ผ่าน" หรือ "มีข้อแก้ไข" → ได้ไฟล์ -ตรวจแล้ว.evalproj ส่งกลับ
  3. ผู้ทำเปิดไฟล์ที่ส่งกลับ → เห็นแถบ "ผลการตรวจงาน" (สถานะ + ความเห็น + ผู้ตรวจ)

ไฟล์ .evalproj เดินทางเป็นไฟล์ที่คุณคุมเอง ไม่ผ่านเซิร์ฟเวอร์ — ปลอดภัยตาม PDPA

About

ระบบวิเคราะห์ผลประเมินโครงการ — วิเคราะห์ .xlsx จาก Google Forms: ค่าเฉลี่ย S.D. ร้อยละ SDGs พร้อมรายงานราชการคัดลอกลง Word (ประมวลผลในเบราว์เซอร์ ข้อมูลไม่ออกจากเครื่อง)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages