ไม่มีชื่อบทความ
การบำรุงรักษาและแนวทางพัฒนาระบบ Time Clock ในอนาคต
1. การหมุน (Rotate) Service Account Keys
เหตุผล: เพิ่มความปลอดภัย ป้องกัน Key รั่วไหลหรือล้าสมัย
วิธีการ:
- เข้า Google Cloud Console → IAM & Admin → Service Accounts
- เลือก Service Account ที่ใช้อยู่
- ไปที่แท็บ Keys
- กด Add Key → Create New Key (ประเภท JSON)
- ดาวน์โหลดและแทนที่ไฟล์เดิมใน
/config/google-service-account.json - อัปเดตค่าใน Environment Variables (ถ้ามีเปลี่ยน)
- ลบ Key เก่าออกทันทีเพื่อป้องกัน misuse
ข้อควรระวัง: Key เก่าอาจยัง valid จนกว่าจะลบออกเอง
2. เปลี่ยนรหัสพนักงานใหม่ / ลบพนักงานเก่า
กรณีเปลี่ยนรหัส:
- แก้ไข Array
employeeListในฟอร์มTimeClockForm.js - อัปเดตทั้ง
fullNameและemployeeCodeให้สอดคล้อง
กรณีลบคนออก:
- ลบ object ของพนักงานคนนั้นออกจาก
employeeList
หมายเหตุ:
- Event ที่เคยลงไปใน Google Calendar แล้วจะยังคงอยู่ (ไม่ถูกลบอัตโนมัติ)
- ถ้าต้องการลบ Event เก่า ต้องใช้ batch delete (ดูข้อ 3)
3. รีเซ็ตวันหยุดหรือข้อมูลเก่าด้วย Google Calendar API batchDelete
Google Calendar API ไม่มี batch delete โดยตรง ต้องทำผ่าน loop เอง:
วิธีเบื้องต้น:
- เรียก
events.listเพื่อดึง event ทั้งหมดตามช่วงเวลา - ใช้
events.deleteลบแต่ละรายการ
ตัวอย่าง pseudocode:
const events = await calendar.events.list({
calendarId: process.env.GOOGLE_CALENDAR_ID,
timeMin: '2024-01-01T00:00:00Z',
timeMax: '2024-12-31T23:59:59Z',
});
for (const event of events.data.items) {
await calendar.events.delete({
calendarId: process.env.GOOGLE_CALENDAR_ID,
eventId: event.id,
});
}
คำเตือน: ต้องใช้ด้วยความระมัดระวัง เพราะลบแล้วไม่สามารถกู้คืนได้
4. Roadmap ต่อไป (ฟีเจอร์ในอนาคต)
🔒 เพิ่ม Auth
- ให้ผู้ใช้ login ก่อนกดลงเวลา (เช่น Basic Auth หรือ OAuth)
👥 รองรับ Multi-employee + Dynamic Employee List
- ดึงรายชื่อพนักงานจาก Database แทน Hardcode
📄 เพิ่มระบบรายงาน CSV Export
- สามารถ export รายการลงเวลาเป็นไฟล์
.csv - ตัวอย่าง column: ชื่อ, รหัสพนักงาน, ประเภท, วันเวลา
- สามารถ export รายการลงเวลาเป็นไฟล์
📅 สร้าง iCal Feed (ics link)
- เปิดให้ผู้จัดการหรือแผนก HR subscribe ผ่าน Calendar App อื่น ๆ ได้
5. Checklist ตรวจสอบระบบทุกเดือน
- ตรวจสอบว่า Key ของ Service Account ยังไม่ใกล้หมดอายุ
- ตรวจสอบ Google Calendar ยังใช้งานได้ปกติ ไม่มี quota เต็ม
- ตรวจสอบว่ารายชื่อพนักงานในระบบเป็นปัจจุบัน
- ทดสอบลงเวลาแบบสุ่ม 1-2 ครั้งแล้วเช็คใน Calendar
- ตรวจสอบ log บน Vercel ว่ามี Error หรือ Warning หรือไม่
- ตรวจสอบว่า Environment Variables บน Vercel ไม่เปลี่ยนไปหรือสูญหาย
หมายเหตุ: การดูแลระบบอย่างต่อเนื่องจะช่วยลด downtime และทำให้ข้อมูลมีความถูกต้องสำหรับใช้งานในระยะยาว