ผลงาน / กรณีศึกษา

BafsWorkout — ระบบทดสอบสมรรถภาพร่างกาย BAFS

ระบบสำหรับการทดสอบสมรรถภาพร่างกายหน้างาน เชื่อมสถานีทดสอบ ความคืบหน้าของผู้เข้าร่วม และผลลัพธ์ไว้ใน workflow เดียว

เปิดโปรเจกต์
BafsWorkout — ระบบทดสอบสมรรถภาพร่างกาย BAFS

ภาพรวมโครงการ

การประเมินสมรรถภาพร่างกายขนาดใหญ่ต้องพาผู้เข้าร่วมผ่านหลายสถานี ขณะที่เจ้าหน้าที่หลายคนบันทึกผลพร้อมกัน ซอฟต์แวร์จึงต้องรองรับเหตุการณ์ที่เกิดขึ้นหน้างาน ไม่ใช่เพียงเก็บคะแนนหลังจบกิจกรรม

ผู้ใช้และ workflow เดิม

ผู้ใช้หลักคือเจ้าหน้าที่ประจำสถานี ทีมจัดการทดสอบ และผู้เข้าร่วม เดิมแบบฟอร์มกระดาษหรือไฟล์ที่แยกจากกันทำให้ค่าที่วัดเสี่ยงหลุดจากผู้เข้าร่วม สถานี หรือลำดับการทดสอบ และทำให้ติดตามรายการที่ยังไม่ครบได้ยาก

บทบาทของผม

ผมทำงานตั้งแต่ทำความเข้าใจข้อกำหนดการประเมิน ออกแบบผลิตภัณฑ์ วาง workflow หน้างาน ตัดสินใจเรื่อง interface สองภาษา และพัฒนาระบบแบบ full stack

ข้อจำกัด

  • เจ้าหน้าที่ต้องใช้งานได้รวดเร็วในพื้นที่ประเมินที่มีคนเคลื่อนที่ตลอดเวลา
  • ปุ่มและสถานะต้องเห็นชัดโดยไม่ต้องตีความ control ที่ซับซ้อน
  • ผู้เข้าร่วมแต่ละคนอาจเคลื่อนผ่านสถานีด้วยความเร็วไม่เท่ากัน
  • ผลทุกสถานีต้องผูกกับบุคคลเดียวกันอย่างต่อเนื่อง

การตัดสินใจออกแบบ

ผมเลือกใช้ assessment record เดียวต่อผู้เข้าร่วมและแสดงสถานะของแต่ละสถานีอย่างชัดเจน แทนการสร้างบันทึกแยกที่ต้องนำมารวมภายหลัง หน้าบันทึกผลถูกออกแบบตามงานของแต่ละสถานีและรองรับภาษาไทยกับอังกฤษ

สิ่งที่พัฒนา

  • การลงทะเบียนหรือค้นหาผู้เข้าร่วม
  • ลำดับสถานีทดสอบที่กำหนดไว้ล่วงหน้า
  • การบันทึกผลเฉพาะของแต่ละสถานี
  • สถานะความคืบหน้าและรายการที่ยังไม่ครบ
  • ผลสรุปและ dashboard สำหรับทีมโครงการ
  • Barcode สำหรับระบุตัวตนผู้เข้าร่วม

workflow หลังปรับปรุง

  1. ลงทะเบียนหรือค้นหาผู้เข้าร่วม
  2. ยืนยันสถานีถัดไปที่ต้องทำ
  3. บันทึกผลสถานีลงใน record เดิม
  4. ส่งผู้เข้าร่วมไปสถานีถัดไปโดยยังเห็นขั้นตอนที่ไม่ครบ
  5. ทบทวนผลเมื่อจบการประเมินและเตรียมข้อมูลให้ทีมโครงการ

ผลลัพธ์ที่ยืนยันได้ในปัจจุบัน

BafsWorkout เปลี่ยนข้อมูลที่เคยแยกตามสถานีให้เป็น workflow ที่ติดตามได้ต่อเนื่อง เจ้าหน้าที่จึงมองเห็นความคืบหน้าและรายการที่ยังไม่ครบได้จากพื้นที่ประเมิน โดยยังไม่เผยแพร่ตัวเลขผลลัพธ์ที่ไม่ได้รับการยืนยัน

Technology stack

  • Front end: Blazor WebAssembly, Microsoft Fluent UI, Syncfusion และ ECharts
  • Back end: ASP.NET Core (.NET 8) และ PostgreSQL ผ่าน Entity Framework Core
  • Authentication: Suttisak.Blazor.Identity และ Passkey