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

ภาพรวมโครงการ
การประเมินสมรรถภาพร่างกายขนาดใหญ่ต้องพาผู้เข้าร่วมผ่านหลายสถานี ขณะที่เจ้าหน้าที่หลายคนบันทึกผลพร้อมกัน ซอฟต์แวร์จึงต้องรองรับเหตุการณ์ที่เกิดขึ้นหน้างาน ไม่ใช่เพียงเก็บคะแนนหลังจบกิจกรรม
ผู้ใช้และ workflow เดิม
ผู้ใช้หลักคือเจ้าหน้าที่ประจำสถานี ทีมจัดการทดสอบ และผู้เข้าร่วม เดิมแบบฟอร์มกระดาษหรือไฟล์ที่แยกจากกันทำให้ค่าที่วัดเสี่ยงหลุดจากผู้เข้าร่วม สถานี หรือลำดับการทดสอบ และทำให้ติดตามรายการที่ยังไม่ครบได้ยาก
บทบาทของผม
ผมทำงานตั้งแต่ทำความเข้าใจข้อกำหนดการประเมิน ออกแบบผลิตภัณฑ์ วาง workflow หน้างาน ตัดสินใจเรื่อง interface สองภาษา และพัฒนาระบบแบบ full stack
ข้อจำกัด
- เจ้าหน้าที่ต้องใช้งานได้รวดเร็วในพื้นที่ประเมินที่มีคนเคลื่อนที่ตลอดเวลา
- ปุ่มและสถานะต้องเห็นชัดโดยไม่ต้องตีความ control ที่ซับซ้อน
- ผู้เข้าร่วมแต่ละคนอาจเคลื่อนผ่านสถานีด้วยความเร็วไม่เท่ากัน
- ผลทุกสถานีต้องผูกกับบุคคลเดียวกันอย่างต่อเนื่อง
การตัดสินใจออกแบบ
ผมเลือกใช้ assessment record เดียวต่อผู้เข้าร่วมและแสดงสถานะของแต่ละสถานีอย่างชัดเจน แทนการสร้างบันทึกแยกที่ต้องนำมารวมภายหลัง หน้าบันทึกผลถูกออกแบบตามงานของแต่ละสถานีและรองรับภาษาไทยกับอังกฤษ
สิ่งที่พัฒนา
- การลงทะเบียนหรือค้นหาผู้เข้าร่วม
- ลำดับสถานีทดสอบที่กำหนดไว้ล่วงหน้า
- การบันทึกผลเฉพาะของแต่ละสถานี
- สถานะความคืบหน้าและรายการที่ยังไม่ครบ
- ผลสรุปและ dashboard สำหรับทีมโครงการ
- Barcode สำหรับระบุตัวตนผู้เข้าร่วม
workflow หลังปรับปรุง
- ลงทะเบียนหรือค้นหาผู้เข้าร่วม
- ยืนยันสถานีถัดไปที่ต้องทำ
- บันทึกผลสถานีลงใน record เดิม
- ส่งผู้เข้าร่วมไปสถานีถัดไปโดยยังเห็นขั้นตอนที่ไม่ครบ
- ทบทวนผลเมื่อจบการประเมินและเตรียมข้อมูลให้ทีมโครงการ
ผลลัพธ์ที่ยืนยันได้ในปัจจุบัน
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