ปัญหาของการตรวจด้วยมือ
ถ้าผู้เข้าร่วมทุกคนต้องส่งข้อมูลในแชต แล้วทีมงานค่อยเช็กทีละคน เรื่องที่หลุดง่ายคือใครส่งแล้ว ใครยังขาดข้อมูล และใครผ่านการตรวจ ระบบนี้จึงแยกทางเดินของผู้เข้าร่วมกับทีมงานให้ชัดขึ้น โดยยังให้คนเป็นผู้ตัดสินผลอนุมัติ
หนึ่งคำสั่ง แต่มีหลายขั้นตอนต่อ
- ผู้เข้าร่วมใช้คำสั่ง /verify ใน Discord เพื่อรับทางไปกรอกข้อมูล
- กรอกข้อมูลที่ระบบใช้จับคู่กับผู้เข้าร่วมและทีม
- ทีมงานตรวจรายการรอพิจารณาในแดชบอร์ด แล้วอนุมัติหรือปฏิเสธ
- ระบบเก็บสถานะการยืนยันไว้ให้ติดตาม ไม่ต้องเริ่มถามใหม่ทุกครั้ง
ตัวโปรเจกต์แยกบอต หน้าเว็บ API และฐานข้อมูล PostgreSQL จึงมีจุดเชื่อมหลายจุดที่ต้องคิดให้ตรงกัน ทั้งรหัสผู้ใช้ Discord ข้อมูลที่กรอก และสิทธิทีมงาน ในซอร์สมีตารางสำหรับผู้ใช้ นักเรียน โรงเรียน ทีม ผู้ดูแล และบันทึกการยืนยัน
สิ่งที่ออกแบบเผื่อทีมงาน
เริ่มจาก Discord ซึ่งเป็นที่ที่เขาอยู่แล้ว ก่อนพาไปฟอร์มแทนการให้ส่งข้อมูลกระจัดกระจายในแชต
รายการรออนุมัติอยู่ในแดชบอร์ดเดียว ช่วยแยกงานตรวจจากการคุยในห้องสาธารณะ
การอนุมัติและปฏิเสธเป็นสถานะของระบบ ไม่ใช่จำจากข้อความเก่า
repository มี README และโครงสร้าง frontend, backend, database และ Docker สำหรับลองรันด้วยตัวเอง
โปรเจกต์นี้ยังไม่ใช่คำรับรองความปลอดภัย
README ของโปรเจกต์ระบุเองว่ายังเป็นงานที่พัฒนาต่อและมีสิ่งต้องปรับก่อนใช้จริงเต็มรูปแบบ เช่น rate limiting บาง endpoint, security headers และการเปลี่ยนค่าตัวอย่างใน environment ผมอยากให้หน้านี้บอกขอบเขตตามจริง มากกว่าพูดว่าระบบปลอดภัยสมบูรณ์แล้ว
สิ่งที่ได้จากงานนี้: ระบบยืนยันตัวตนไม่ได้จบที่ฟอร์มสวย ๆ ต้องออกแบบการไหลของข้อมูลระหว่างบอต เว็บ และคนตรวจให้สอดคล้องกัน พร้อมทำรายการความเสี่ยงที่ยังค้างให้เห็นครับ
ดูโค้ดและข้อจำกัดจริง
README ของโปรเจกต์มีทั้งวิธีรัน ลำดับการใช้งาน และรายการที่ยังควรปรับปรุง
เปิด repository