สถาปัตยกรรมจัดการกลุ่มเรียน, วิเคราะห์พฤติกรรมนักเรียนกลุ่มเสี่ยง (Early Warning System),
ระบบบันทึกเวลาปฏิบัติหน้าที่ครูระดับสาขาวิชา และการออกเอกสารราชการอิเล็กทรอนิกส์ครบวงจร
ระบบได้รับการออกแบบโครงสร้างตารางข้อมูลให้อยู่ในกลุ่ม flag_* อย่างเป็นเอกเทศ
เพื่อป้องกันการกระทบกระเทือนต่อระบบ LMS และฐานข้อมูลเกรดของนักศึกษา พร้อมมีระบบ Auto-Fix Table Creation
ที่จะตรวจสอบและสร้างตารางรวมถึงฟิลด์ที่ขาดหายไปทันทีเมื่อโหลดหน้าเว็บ
| ชื่อตาราง | หน้าที่หลักของตาราง |
|---|---|
| flag_departments | จัดเก็บโครงสร้างสาขาวิชา/แผนกวิชาทั้งหมด |
| flag_groups | จัดเก็บรหัสกลุ่มเรียนและจับคู่กับครูที่ปรึกษา |
| flag_students | ฐานข้อมูลนักเรียน รหัส ชื่อ-สกุล และสังกัดกลุ่ม |
| flag_attendance_log | บันทึกสถิติการเข้าแถวนักเรียนรายวัน |
| flag_teacher_duty_log | บันทึกการปฏิบัติหน้าที่ครูที่ปรึกษาลงแถว |
สิทธิ์สูงสุดในการควบคุมระบบ
ฝ่ายพัฒนากิจกรรมนักเรียนฯ
ครูที่ปรึกษาประจำกลุ่ม
ครูผู้สอน / ครูนิเทศก์
แสดงจำนวนนักเรียนทั้งหมดในระบบ, จำนวนครูที่ปรึกษาที่ลงทะเบียน และจำนวนกลุ่มเรียนที่เปิดสอนในภาคเรียน
จำแนกสถิติการเช็คแถวออกเป็น 4 สถานะมาตรฐาน พร้อมแสดงยอดรวมนักศึกษาที่ผ่านเกณฑ์สะสม (≥80%) และไม่ผ่านเกณฑ์ (<80%) ทันที
แสดงสัดส่วนร้อยละของการเข้าแถวประจำวัน เพื่อให้มองเห็นความสัมพันธ์ระหว่างยอดผู้เข้าแถวปกติ กับยอดผู้ขาด/สาย/ลา
เปรียบเทียบสถิติพฤติกรรมไม่พึงประสงค์ (ขาด vs สาย) แยกตามแต่ละกลุ่มเรียน เพื่อค้นหากลุ่มที่มีปัญหาความมีวินัย
ระบบจะประมวลผลข้อมูลจากตาราง flag_attendance_log เพื่อค้นหานักศึกษาที่มีสถิติตรงตามเงื่อนไขอย่างใดอย่างหนึ่ง:
ประโยชน์เชิงการบริหารงานปกครอง: ทำให้ครูที่ปรึกษาและงานกิจกรรมนักเรียนสามารถติดต่อผู้ปกครอง เพื่อแก้ไขปัญหาการหนีแถวหรือการตื่นสายได้ตั้งแต่ช่วงต้นภาคเรียน ก่อนที่เวลาเข้าแถวจะไม่ผ่านเกณฑ์ 80%
| รหัสนักศึกษา | ชื่อ-นามสกุล | ขาด | สาย | ไทม์ไลน์ |
|---|---|---|---|---|
| 66209010012 | นายอภิสิทธิ์ ใจกล้า | 5 | 3 | |
| 66209010045 | นายธนกฤต ศรีมงคล | 4 | 2 |
เพื่อลดภาระในการอ่านตัวเลขจำนวนมากของผู้บริหาร ระบบได้นำเสนออัตราส่วนการเข้าแถวของแต่ละกลุ่มเรียนด้วย Progress Bar 4 สี ที่มีความกว้างตามสัดส่วนร้อยละจริงของจำนวนครั้งที่บันทึก
Client-Side Pagination Engine: ทำงานด้วย JavaScript ล้วน ช่วยแบ่งหน้าแสดงผลละ 5 แถว ลดภาระของ DOM Rendering ทำให้เบราว์เซอร์ทำงานลื่นไหลแม้เปิดดูผ่านแท็บเล็ตหรือสมาร์ทโฟน
| กลุ่มเรียน | นักเรียน | สัดส่วนการเข้าแถว (มา/ขาด/สาย/ลา) |
|---|---|---|
| สทด. 1/1 | 25 คน |
|
| สบค. 2/1 | 28 คน |
|
สทด. 1/1 หรือ ปวส.1 ทธ.2ยังไม่จัดกลุ่ม โดยไม่สูญหายไปจากฐานข้อมูลsample_groups.csvหากรหัสกลุ่มเรียนที่นำเข้ามีอยู่เดิมแล้วในฐานข้อมูล ระบบจะไม่สร้างแถวใหม่ซ้ำซ้อน แต่จะคงสภาพกลุ่มเดิมไว้ ทำให้ปลอดภัยต่อการนำเข้าไฟล์หลายครั้ง
รหัสกลุ่มเรียน สทด. 1/1 สทด. 1/2 สบค. 1/1 ชย. 1/1 ชย. 1/2 ชฟ. 1/1คำสั่ง SQL สำหรับการนำเข้าแบบป้องกันความซ้ำซ้อน:
INSERT INTO flag_groups (group_name) VALUES (?) ON DUPLICATE KEY UPDATE group_name = group_name;
password_hash(..., PASSWORD_DEFAULT) ถอดรหัสย้อนกลับไม่ได้ติดตั้งอยู่บริเวณหัวตารางแท็บ 2 เปิดหน้าต่าง Modal ให้แอดมินสามารถบริหารจัดการโครงสร้างแผนกวิชาได้ทันที:
flag_departments ทันทีusers ให้ตรงกันทันทียังไม่ระบุ โดยไม่ลบบัญชีผู้ใช้ของครูเมื่อมีการสร้างบัญชีครูซ้ำ หรือระบุสังกัดสาขาวิชาผิดพลาด ผู้ดูแลระบบไม่จำเป็นต้องลบบัญชีครู แต่สามารถใช้ปุ่ม "ดีดออก" เพื่อปลดครูออกจากสาขานั้นได้ทันที
ดีดออก สีแดงบนการ์ด สำหรับฝ่ายตรวจแถวUPDATE users SET department = '' WHERE id = ?;*ครูที่ถูกดีดออกจะย้ายไปอยู่หมวด "ไม่ระบุสาขาวิชา" รอการจัดสังกัดใหม่
flag_attendance_log ให้ตรงกับรหัสใหม่โดยอัตโนมัติ| รหัสนักศึกษา | ชื่อ-นามสกุล | กลุ่มเรียน | จัดการ |
|---|---|---|---|
| 66209010001 | นายเอกชัย ใจสู้ | สทด. 1/1 | |
| 66209010002 | นางสาวกัญญา พรหมดี | สทด. 1/1 |
| คอลัมน์ | ชื่อฟิลด์ | ตัวอย่างข้อมูล |
|---|---|---|
| คอลัมน์ A | รหัสนักศึกษา | 66209010001 |
| คอลัมน์ B | ชื่อ-นามสกุล | นายสมชาย ขยันเรียน |
| คอลัมน์ C | กลุ่มเรียน | สทด. 1/1 |
ต้องเลือกบันทึกไฟล์เป็น CSV UTF-8 จากโปรแกรม Excel เพื่อป้องกันปัญหาสระและพยัญชนะภาษาไทยกลายเป็นเครื่องหมายคำถาม (?)
INSERT INTO flag_students
(student_code, fullname, class_group)
VALUES
(?, ?, ?)
ON DUPLICATE KEY UPDATE
fullname = VALUES(fullname),
class_group = VALUES(class_group);
ผลลัพธ์: หากนำเข้าไฟล์ซ้ำ ระบบจะทำการตรวจสอบรหัสนักเรียน ถ้ามีอยู่แล้วจะอัปเดตชื่อหรือกลุ่มให้ทันสมัย โดยไม่เกิด Error และไม่สูญเสียประวัติการเข้าแถวเดิม
ใช้เมื่อมีนักเรียนกลุ่มใดกลุ่มหนึ่งสำเร็จการศึกษา หรือย้ายแผนกวิชา โดยเปิด Modal ให้เลือกเฉพาะกลุ่มที่ต้องการลบ:
DELETE FROM flag_students WHERE class_group = ?;
✔ นักเรียนในกลุ่มอื่นยังคงอยู่ในระบบอย่างปลอดภัย 100%
ใช้เมื่อสิ้นปีการศึกษาและต้องการล้างฐานข้อมูลนักเรียนเพื่อเตรียมนำเข้าชุดใหม่ทั้งสถานศึกษา:
TRUNCATE TABLE flag_students;
แทนที่จะเรียงรายชื่อครูตามพยัญชนะซึ่งหายาก ระบบได้ทำการ **จัดกลุ่มครูแยกตามสาขาวิชา** สอดคล้องกับตำแหน่งที่ครูยืนกำกับดูแลนักเรียนในลานหน้าเสาธง:
เมื่อผู้ตรวจแถวกดเลือกปุ่มสถานะ (มา, ขาด, สาย, ลา) JavaScript จะส่งข้อมูลผ่าน Fetch API ไปยังไฟล์ PHP ทันทีในเบื้องหลัง:
(teacher_id, check_date) เป็น UNIQUE หากมีการกดเปลี่ยนสถานะ ระบบจะ UPDATE แทนการ INSERTใช้กรณีที่มีการตรวจนับผิดพลาดในวันนั้น และต้องการเริ่มเช็คชื่อครูใหม่ในวันปัจจุบัน:
DELETE FROM flag_teacher_duty_log WHERE check_date = ?;
ใช้เมื่อสิ้นสุดปีการศึกษา เพื่อล้างประวัติการลงเวลาของครูทั้งหมดเตรียมรับเทอมใหม่:
TRUNCATE TABLE flag_teacher_duty_log;
เมื่อคลิกปุ่ม "รายงานปฏิบัติหน้าที่ครู" ระบบจะดึงข้อมูลสะสมทั้งหมดของครูแต่ละท่านมาคำนวณร้อยละ (%):
| ชื่อ-สกุลครู | มา | ขาด | สาย | % | ผลประเมิน |
|---|---|---|---|---|---|
| นางนงนุช เพชรดี | 18 | 0 | 2 | 100% | ผ่านเกณฑ์ |
| นายสมชาย ใจดี | 14 | 4 | 1 | 78.9% | ต้องปรับปรุง |
ใช้ไลบรารี html2pdf.js เรนเดอร์เอกสาร A4 จัดหน้าคมชัดพร้อมตราครุฑ นำเสนอเซ็นแฟ้มได้ทันที
สร้างไฟล์ .doc แท้ด้วย Blob Encoding เปิดใน Microsoft Word แก้ไขข้อความหรือบันทึกข้อสั่งการได้
ส่งออกข้อมูลดิบในรหัส UTF-8 พร้อม BOM (\uFEFF) เปิดใน Excel ภาษาไทยไม่เพี้ยน นำไปทำแผนภูมิได้
รองรับคำสั่ง window.print() พร้อมระบบ Print Isolation ไม่ติดส่วนติดต่อผู้ใช้หรือปุ่มเมนูออกทางเครื่องพิมพ์