THE CHALLENGE
โจทย์และความท้าทาย
ช่างภาพงานอีเวนต์ต้องจัดการภาพจำนวนมากและส่งมอบให้ผู้เข้าร่วมหลายคน ขณะที่แขกต้องไล่ค้นหาภาพของตนเองจากทั้งอัลบั้ม จึงต้องออกแบบระบบที่ช่วยค้นหาภาพได้สะดวก รองรับการอัปโหลดและจัดเก็บภาพจำนวนมาก แยกสิทธิ์ของผู้ดูแลกับช่างภาพ และควบคุมโควตาการใช้งานตามแพ็กเกจสมาชิก
THE APPROACH
แนวทางการแก้ไข
พัฒนาเว็บแอปด้วย Next.js และ TypeScript แยกหน้าสำหรับผู้ดูแล ช่างภาพ และผู้เข้าชมอัลบั้ม ใช้ Auth.js จัดการการเข้าสู่ระบบ และ Prisma เชื่อมต่อฐานข้อมูล TiDB
สร้างกระบวนการค้นหาภาพด้วยใบหน้าจากเซลฟี่ โดยตรวจจับใบหน้าและสร้างเวกเตอร์บนเบราว์เซอร์ แล้วเทียบความคล้ายในฐานข้อมูลเฉพาะอีเวนต์ พร้อมสร้างแกลเลอรีที่เลือกธีมได้และแชร์ผ่านลิงก์หรือ QR Code
เชื่อม Cloudflare R2 สำหรับจัดเก็บภาพ ใช้ Presigned URL ในกระบวนการอัปโหลดและดาวน์โหลด เพิ่มระบบอัปโหลดอัตโนมัติจากโฟลเดอร์และ PhotoSync พร้อมพัฒนาการตรวจสอบโควตา แพ็กเกจสมาชิก และการชำระเงิน Omise PromptPay ที่รับผลผ่าน Webhook