ระบบเช็คแถวหน้าเสาธงและกำกับติดตามการปฏิบัติหน้าที่ครูที่ปรึกษา ได้รับการพัฒนาขึ้นบนพื้นฐานของ PHP 8 + MariaDB/MySQL โดยมีเป้าหมายในการขจัดความซ้ำซ้อนของเอกสารกระดาษ (Paperless Workflow) และเพิ่มความแม่นยำในการวัดผลกิจกรรมพัฒนาผู้เรียน ตามหลักสูตรประกาศนียบัตรวิชาชีพ (ปวช.) และประกาศนียบัตรวิชาชีพชั้นสูง (ปวส.)
จุดเด่นเชิงวิศวกรรมของระบบคือสคริปต์ Auto-Fix Engine ที่ทำงานทันทีเมื่อไฟล์ถูกโหลด หากระบบตรวจพบว่าตารางหรือคอลัมน์ในฐานข้อมูลยังไม่สมบูรณ์ จะดำเนินการสร้างตารางที่จำเป็นให้อัตโนมัติทันที ป้องกันข้อผิดพลาดหน้าเว็บล่ม (HTTP 500 หรือ Database Missing Error) ได้อย่างสมบูรณ์แบบ
| ชื่อตารางฐานข้อมูล | ฟิลด์สำคัญ (Key Columns) | บทบาทหน้าที่ในระบบ |
|---|---|---|
| flag_groups | id, group_name, teacher_id | จัดเก็บรหัสกลุ่มเรียน และเชื่อมโยง ID ครูที่ปรึกษาผู้รับผิดชอบ |
| flag_students | id, student_code, fullname, class_group | ฐานข้อมูลนักเรียนหน้าเสาธง จัดการรหัส ชื่อ-สกุล และสังกัดกลุ่มเรียน |
| flag_attendance_log | student_code, status, check_date | บันทึกสถิติการเช็คแถวนักเรียน (UNIQUE ต่อคนต่อวัน) |
| flag_teacher_duty_log | teacher_id, status, check_date | บันทึกการปฏิบัติหน้าที่ครูที่ปรึกษาลงแถวประจำวัน |
| flag_departments | id, dept_name | จัดเก็บรายชื่อสาขาวิชา/แผนกวิชาเพื่อความเป็นระเบียบ |
| flag_score_adjustments | student_code, week_no, score_adjust | จัดเก็บคะแนนปรับปรุงรายสัปดาห์ (18 สัปดาห์) รายบุคคล |
ระบบรองรับการแบ่งสิทธิ์ออกเป็น 4 ระดับอย่างเคร่งครัด ได้แก่ admin (ควบคุมทุกโมดูล), staff (เจ้าหน้าที่ฝ่ายพัฒนากิจกรรม มองเห็นแดชบอร์ดและแท็บ 4 ตรวจเช็คครู), homeroom_teacher (ครูที่ปรึกษา ดำเนินการเช็คชื่อกลุ่มที่ตนรับผิดชอบ) และ teacher (ครูผู้สอนทั่วไป ดูภาพรวมและรายชื่อกลุ่มเสี่ยง)
ในหน้าจอ flag_attendance.php ครูที่ปรึกษาสามารถดำเนินการเช็คชื่อนักเรียนในกลุ่มของตนได้อย่างรวดเร็ว
การเลือกสถานะ (มา, ขาด, สาย, ลา) จะส่งคำสั่งผ่าน AJAX ทันทีโดยไม่ต้องโหลดหน้าเว็บใหม่
พร้อมตัวแจ้งเตือนภาพ (Visual Flash) สีเขียว เพื่อให้ครูมั่นใจว่าข้อมูลถูกบันทึกสำเร็จ
ระบบแก้ปัญหาการคำนวณสัปดาห์คลาดเคลื่อนด้วยอัลกอริทึม Dynamic Chronological Mapping โดยนำวันที่ที่มีการเช็คชื่อจริงในระบบมาจัดกลุ่มทุกๆ 5 วันทำการเข้าสู่สัปดาห์ที่ 1 ถึง 18 ให้อัตโนมัติ:
- คะแนนฐานอัตโนมัติ: ดึงยอดวันเข้าแถว (`มา`, `สาย`, `ลา`) ในสัปดาห์นั้นมาลงในช่อง ส.1 ถึง ส.18 ทันที (เต็ม 5 คะแนนต่อสัปดาห์)
- แก้ไขคะแนนในตารางได้ (Editable Table): ครูสามารถพิมพ์ปรับคะแนนในแต่ละช่องตารางได้โดยตรง ระบบจะบันทึกส่วนต่างลงในตาราง flag_score_adjustments และคำนวณคะแนนรวม ร้อยละ และสถานะผ่านเกณฑ์ใหม่อัตโนมัติทันที
ในแท็บ 4. เช็คปฏิบัติหน้าที่ครู ระบบจัดกลุ่มครูแยกตาม "สาขาวิชา/แผนกวิชา" สอดคล้องกับผังการยืนแถวตรวจนักเรียนในลานหน้าเสาธงจริง ทำให้เจ้าหน้าที่ฝ่ายพัฒนากิจกรรม (Staff) หรือผู้บริหาร (Admin) สามารถตรวจเช็คการลงแถวของครูได้อย่างรวดเร็วเป็นรายแผนก
ระบบมีแถบตัวกรองสาขาวิชา (Department Filter) และช่องค้นหาแบบ Instant Search พิมพ์ชื่อครูหรือรหัสกลุ่มเรียนเพื่อเปิดการ์ดตรวจเช็คได้ทันที
เพื่อป้องกันปัญหารายชื่อครูซ้ำซ้อนหรือย้ายแผนกวิชาผิดพลาด ระบบได้พัฒนาฟังก์ชันเฉพาะ:
ไม่ระบุสาขาวิชา) โดยไม่ลบบัญชีหรือรหัสผ่านของครู
ระบบติดตั้งปุ่มควบคุมข้อมูล 2 ระดับในแท็บ 4:
- เคลียร์รายวัน (Daily Clear): รีเซ็ตข้อมูลเช็คชื่อครูเฉพาะของวันที่เลือก กรณีที่ต้องการตรวจนับใหม่
- เคลียร์ทั้งหมด (All Clear): ล้างประวัติสะสมทั้งหมดเมื่อสิ้นปีการศึกษา โดยมีกล่องยืนยันป้องกันการกดผิด
ระบบได้รับการออกแบบให้สร้างเอกสารแบบ บันทึกข้อความราชการ ตามระเบียบสำนักนายกรัฐมนตรีว่าด้วยงานสารบรรณ พร้อมตราครุฑมาตรฐาน การระบุส่วนราชการ ที่หนังสือ วันที่ภาษาไทยเต็ม และช่องลงนาม โดยแบ่งประเภทรายงานออกเป็น 3 รูปแบบหลักอย่างชัดเจน:
| ปุ่มคำสั่งรายงาน | ขอบเขตข้อมูลที่นำเสนอ | รูปแบบการลงนามและจัดหน้า |
|---|---|---|
| รายงานเช็ครายวัน (ออกเอกสาร) |
รายงานผลการเข้าแถวประจำวันของกลุ่มเรียนที่เลือก สรุปยอด มา/ขาด/สาย/ลา พร้อมตารางรายชื่อแนบท้าย | ครูที่ปรึกษาประจำกลุ่มเป็นผู้ลงนาม จัดหน้ากระดาษ A4 แนวตั้ง (หน้าที่ 1 บันทึกข้อความ, หน้าที่ 2 ตารางรายบุคคล) |
| ปริ้นท์รายงานราชการ (ปุ่มสีเขียว - 18 สัปดาห์) |
รายงานสรุปผลคะแนนสะสม 18 สัปดาห์ เฉพาะกลุ่มเรียนที่เลือก แสดงยอด มา, ขาด, สาย, ลา, รวมวัน, ร้อยละ และผลกิจกรรม | ครูที่ปรึกษาประจำกลุ่มเป็นผู้ลงนาม จัดหน้ากระดาษ A4 แนวตั้ง พอดีหน้า คมชัด |
| รายงานเชิงลึกภาพรวม (ปุ่มสีน้ำเงิน - ทั้งหมด) |
ดึงรายชื่อนักเรียนนักศึกษา ทั้งหมดทุกกลุ่มเรียนในสถานศึกษา ออกมาเป็นรายงานฉบับเดียวกัน มีการแบ่งสถิติเชิงลึกสะสมรายคน | ลงชื่อตาม User ที่ล็อกอินเข้าสู่ระบบจริง (ดึงชื่อจากบัญชีผู้ใช้) เหมาะสำหรับงานกิจกรรมเสนอผู้บริหาร |
เพื่อแก้ปัญหาการปริ้นท์แล้วติดแถบเมนู หรือมีตารางนักเรียนไปปะปนกับรายงานครู ระบบได้ใช้สถาปัตยกรรม Print Isolation CSS (Class Switching):
/* ควบคุมการแสดงผลเฉพาะกล่องเอกสารที่ถูกสั่งพิมพ์เท่านั้น */
@media print {
body > *:not(.print-active) { display: none !important; }
.print-active { display: block !important; width: 100%; }
@page { size: A4 portrait; margin: 15mm 12mm; }
}
ทำให้เมื่อผู้ใช้งานคลิกปุ่ม "สั่งพิมพ์ / บันทึกเป็น PDF" เว็บเบราว์เซอร์จะประมวลผลเฉพาะเนื้อหาเอกสารราชการ ตัดแถบสี แถบเมนู และปุ่มควบคุมออกทั้งหมด ส่งผลให้ได้ไฟล์ PDF ขนาด A4 แนวตั้งที่สะอาด คมชัด ถูกต้องตามระเบียบสารบรรณ 100%