เกี่ยวกับ “ระบบปฏิทิน”
แพลตฟอร์มปฏิทินกลางของมหาวิทยาลัยราชภัฏนครสวรรค์ (NSRU) สำหรับบริหารจัดการกิจกรรมระดับบุคคล ผู้บริหาร หน่วยงาน และกลุ่ม พร้อมเครื่องมือค้นหาวันว่าง ฟิลเตอร์ขั้นสูง การมอบหมายเลขาฯ และการเชื่อมต่อข้อมูลวันสำคัญ/วันหยุดอัตโนมัติ
ภาพรวมระบบ
ระบบปฏิทินถูกออกแบบให้รองรับการทำงานหลากหลายบทบาท ตั้งแต่ “ปฏิทินของฉัน” (บุคคล) ไปจนถึงปฏิทิน “ผู้บริหาร”, “หน่วยงาน”, และ “กลุ่ม” พร้อมโครงสร้างข้อมูลที่ยืดหยุ่น และการกำหนดสิทธิ์/ผู้ช่วย (เลขาฯ) เพื่อบริหารจัดการกำหนดการแทนได้อย่างปลอดภัย
- ใช้ FullCalendar และ Livewire 3 เพื่อการโต้ตอบแบบเรียลไทม์
- รองรับ ฟิลเตอร์ขั้นสูง (ประเภทกิจกรรม, หน่วยงานผู้จัด, รูปแบบออนไลน์/ออนไซต์, คีย์เวิร์ด, ช่วงวันที่, Day Type)
- มี เครื่องมือค้นหาวันว่าง ทั้งตามช่วงเวลาเช้า/บ่าย และช่วงเวลาที่กำหนดเอง
- ซัพพอร์ต RRULE สำหรับอีเวนต์ซ้ำซ้อน และการแสดงผลวันสิ้นสุดข้ามวันอย่างถูกต้อง
- เชื่อมต่อข้อมูลวันหยุด/วันสำคัญจาก ICS/JSON ภายนอก และบันทึกลงฐานข้อมูล
- โครงสร้างตารางรองรับ Soft Deletes และฟิลด์ติดตามการเปลี่ยนแปลง (created_by, updated_by, deleted_by)
เทคโนโลยีหลัก
ฟีเจอร์เด่น
ฟิลเตอร์ขั้นสูง
กรองตามประเภทกิจกรรม หน่วยงาน รูปแบบออนไลน์/ออนไซต์ คีย์เวิร์ด ช่วงวันที่ Day Type
ปฏิทินผู้บริหาร & เลขาฯ
มอบหมายเลขาฯ หลายคนต่อผู้บริหารหนึ่งคน ให้ช่วยจัดการกำหนดการแทนได้
กิจกรรมซ้ำ (RRULE)
รองรับ Weekly/Monthly/Yearly พร้อมปรับพฤติกรรมวันสิ้นสุดที่ 23:59:59 → ข้ามวัน
ผู้เข้าร่วม/ผู้ประสานงาน/คนขับ
รองรับผู้เข้าร่วมหลายคน ผู้ประสานงาน และคนขับรถมากกว่า 1 คนต่อกิจกรรม
ค้นหาวันว่าง
ตรวจสอบว่างเช้า/บ่าย หรือกำหนดช่วงเวลาเอง พร้อมแผนที่เวลาให้ชัดเจน
นำเข้า ICS/JSON
เชื่อมต่อวันหยุดราชการ/วันสำคัญ แล้วบันทึกลงฐานข้อมูล (event_types: holiday)
รองรับภาษาไทยเต็มรูปแบบ
รูปแบบวันที่ไทย + ปี พ.ศ. และการแสดงผลที่เป็นมิตรต่อผู้ใช้ไทย
แนบไฟล์ & แท็ก
เพิ่มไฟล์แนบและแท็กกิจกรรม เพื่อค้นหา/จัดกลุ่มได้ง่ายขึ้น
โมดูลหลักของระบบ
ปฏิทินของฉัน
จัดการกิจกรรมส่วนบุคคล พร้อมแชร์/มอบหมายให้ผู้ช่วยได้
ปฏิทินผู้บริหาร
โฟกัสตารางผู้บริหาร พร้อมเลขาฯ หลายคนช่วยดูแล
ปฏิทินหน่วยงาน
รวมกิจกรรมของหน่วยงานและการอนุมัติเชิงระบบ
ปฏิทินกลุ่ม
สำหรับทีม/โครงการ/ภารกิจเฉพาะกิจ
ปฏิทินสาธารณะ
เผยแพร่กิจกรรมสาธารณะ พร้อมฟิลเตอร์ให้ผู้ชมค้นหา
ปฏิทินวันสำคัญ/วันหยุด
นำเข้าจาก ICS/JSON (เช่น วันหยุดราชการ) เพื่อแสดงรวมในระบบ
ภาพรวมโครงสร้างข้อมูล
EventType::root()->orderBy('name_th'))
และออกแบบความสัมพันธ์เพื่อส่งข้อมูลพร้อมใช้ให้ FullCalendar/ตัวกรองได้ครบถ้วน
หลักการแสดงวันที่
- เหตุการณ์วันเดียว: แสดงเวลาตามจริง
- เหตุการณ์ข้ามวัน: ปัด
23:59:59 → วันถัดไป 00:00:00เพื่อความถูกต้องของการมองเห็น - รองรับปี พ.ศ. และภาษาไทย
มาตรฐานคุณภาพ
- จัดการ Error ใน Seeder/Importer (เช่น OAuth/วันเวลา/ค่าผิดปกติ)
- ทดสอบกับกรณีซ้ำซ้อน (Weekly/Monthly/Until)
- บันทึกการกระทำผู้ใช้ (Log) ตามนโยบายภายใน
การเชื่อมต่อ & นำเข้าข้อมูล
Holiday/Important Days Import
ระบบรองรับการนำเข้าวันหยุดราชการ/วันสำคัญจากแหล่งข้อมูลภายนอก (ICS/JSON)
และบันทึกลงตาราง events ด้วยประเภท holiday (เชื่อมกับ event_types)
https://www.myhora.com/calendar/ical/holiday.aspx?latest.json
https://calendar.google.com/calendar/render?cid=webcal://www.myhora.com/calendar/ical/buddha.aspx?latest.ics
แนวทางด้านความปลอดภัย & นโยบาย
- การเข้าถึงข้อมูลกิจกรรมอ้างอิงสิทธิ์ผู้ใช้และบทบาท (ผู้บริหาร/เลขาฯ/หน่วยงาน/กลุ่ม)
- แยกข้อมูลสาธารณะกับข้อมูลภายในชัดเจน
- ควบคุมการมอบหมายเลขาฯ หลายคนต่อผู้บริหารได้
- ติดตามการเปลี่ยนแปลง (created_by, updated_by, deleted_by) ทุกตารางหลัก
- เน้นแหล่งข้อมูลที่ฟรีและระบุข้อจำกัดการใช้งานให้ชัดเจนก่อนเชื่อมต่อ
เครื่องมือ “ค้นหาวันว่าง”
เลือกกรองช่วงเวลาแบบมาตรฐาน ช่วงเช้า (08:00–12:00), ช่วงบ่าย (13:00–17:00) หรือกำหนดช่วงเวลาที่ต้องการเอง ระบบจะตรวจสอบอีเวนต์ที่ทับซ้อนอย่างถูกต้อง (หากเหตุการณ์เริ่มเช้าและสิ้นสุดบ่าย ระบบถือว่า “ไม่ว่าง” ทั้งสองช่วง)
- รองรับการคำนวณจากหลายปฏิทิน (บุคคล/ผู้บริหาร/กลุ่ม)
- กำหนดช่วงวันที่และความยาวช่องว่างขั้นต่ำได้
- แสดงผลและแจ้งเตือน (เช่น gritter/SweetAlert) หลังประมวลผลเสร็จ
Roadmap (หัวข้อเด่นถัดไป)
ติดต่อทีมพัฒนา
สำนักวิทยบริการและเทคโนโลยีสารสนเทศ มหาวิทยาลัยราชภัฏนครสวรรค์
แนวทางการพัฒนายึด Design for Thai Users และ Free-First Tools
เพื่อการนำไปใช้จริงในงานมหาวิทยาลัย