Hyunjun Kim

AttenNFC

ดีไซน์ของนักวางแผน สร้างด้วย AI — ระบบลงเวลาทำงานด้วย NFC + GPS พร้อมคำนวณเงินเดือนอัตโนมัติ สำหรับธุรกิจขนาดเล็กในไทย

กำลังพัฒนาไอเดีย→เปิดตัว~9 วัน

2026.09 – ปัจจุบัน (กำลังพัฒนา) / คนเดียว (AI เป็นทีม) / iOS · Android · Web

ปัญหา
ธุรกิจขนาดเล็กในไทยยังลงเวลาทำงานบนกระดาษ — ตอกบัตรแทนกัน โกงเวลา และคิดเงินเดือนช้า
บทบาทของผม
วางแผน · ออกแบบสถาปัตยกรรมและความปลอดภัย · กำกับ AI ให้สร้าง
เทคสแต็ก
Flutter · Dart · Riverpod (code-gen) · Supabase · NFC (NTAG424 DNA)

ผลลัพธ์

จากไอเดียสู่ตรรกะหลักที่ทำงานได้ (กำลังพัฒนา)
~9 วัน
จากไอเดียสู่ตรรกะหลักที่ทำงานได้ (กำลังพัฒนา)
ความปลอดภัยในการยืนยันการลงเวลา
4 ชั้น
ความปลอดภัยในการยืนยันการลงเวลา
ตัวแปรในสูตรเงินเดือน (ตั้งค่าได้ ไม่ฮาร์ดโค้ด)
9
ตัวแปรในสูตรเงินเดือน (ตั้งค่าได้ ไม่ฮาร์ดโค้ด)
กฎตรวจจับความผิดปกติ
5
กฎตรวจจับความผิดปกติ

⚡ ไอเดีย→เปิดตัว

~9 วัน

  1. 2026-09-08

    คำสั่งแรก

  2. +9 days

    2026-09-17

    บิลด์แรกที่ใช้งานได้ · ล่าสุด

จากไอเดียสู่ตรรกะหลักที่ทำงานได้ ~9 วัน (ทำงานจริง ~5–7 วัน) · กำลังพัฒนา ยังไม่ได้ดีพลอย

01

ไอเดีย / ปัญหา

คำสั่งแรก: "มาออกแบบหน้าจอและฟีเจอร์ทั้งหมดของแอปลงเวลาที่ใช้แท็ก NFC + เซิร์ฟเวอร์ให้เสร็จก่อน Flutter ทำได้ทั้ง iOS และ Android ใช่ไหม?" ต้นฉบับ (KO): "NFC 태그와 서버를 조합한 근태 앱을, 화면·기능 설계부터 디테일하게 끝내자. 플러터면 iOS·안드로이드 둘 다 되지?"

คลินิกทันตกรรม คาเฟ่ และร้านอาหารขนาดเล็กในไทยยังลงเวลาทำงานบนกระดาษ ซึ่งเปิดช่องให้ตอกบัตรแทนกันและโกงเวลา อีกทั้งการคิดเงินเดือนก็ใช้แรงงานมาก เป้าหมายคือแอปที่บันทึกการลงเวลาอย่างตรงไปตรงมาผ่านแท็ก NFC และการตรวจตำแหน่ง แล้วคำนวณเงินเดือนจากบันทึกเหล่านั้นให้อัตโนมัติ

02

แผนและมาตรฐานที่ผมกำหนด

สำหรับโปรเจกต์นี้ ตัวการออกแบบคือหัวใจ ก่อนเขียนโค้ดแม้แต่บรรทัดเดียว ผมออกแบบสิ่งเหล่านี้:

  • ความปลอดภัย 4 ชั้น: โทเคนแบบไดนามิกจาก NFC (NTAG424 DNA) + สัญญาณ Wi-Fi (ชั้นเสริม) + การผูกอุปกรณ์ + การตรวจจับ root/jailbreak
  • กฎความผิดปกติ 5 ข้อ: ปฏิเสธทันทีเฉพาะการละเมิดร้ายแรง (เช่น อุปกรณ์ไม่ตรงกัน) ที่เหลือบันทึกไว้ให้แอดมินตรวจสอบเอง (Manual Review)
  • สูตรเงินเดือนเป็นการตั้งค่า ไม่ใช่โค้ด: แอดมินตั้งสูตรบนหน้าจอ แล้วตัว parser ที่ปลอดภัยเป็นผู้คำนวณ ตัวแปรกำหนดไว้ที่ 9 ตัว (ค่าจ้างพื้นฐาน, ค่าล่วงเวลา, ค่ากะดึก, การมาสาย ฯลฯ)
  • ความเป็นส่วนตัว (PDPA): ใช้ GPS และ device ID เพื่อการยืนยันชั่วคราวเท่านั้น ไม่เก็บถาวร
  • โครงสร้างแบบ multi-tenant (หลายบริษัทในระบบเดียว)

Fig. attennfc-02

เงินเดือนเป็นการตั้งค่า ไม่ใช่โค้ด — เอนจินสูตร

แอดมินตั้งสูตรผ่าน GUIเริ่มจากเทมเพลตตามประเภทธุรกิจ

ตัวแปรตายตัว 9 ตัว

Base payOvertimeNightLate…
คำนวณparser สูตรที่ปลอดภัยไม่มีฮาร์ดโค้ด
ผลลัพธ์เงินเดือน + ประมาณการแบบเรียลไทม์
Admins set the formula on screen and a safe parser computes it. Nine fixed variables, industry templates and live estimates. (The settings screen is still in development, so this shows the structure.)

03

การกำกับ AI

Fig. attennfc-direction

การกำกับ AI

  1. 01 คำสั่งแรก

    สร้าง DB schema การจัดการ state (provider) และเอนจินคำนวณเงินเดือนตามมาตรฐานด้านบน

  2. 02 สิ่งที่ผมตรวจ

    เมื่อรีวิวโค้ดที่สร้างขึ้น ผมพบปัญหาซ้ำ ๆ — API ของไลบรารี NFC ไม่ตรงกัน, company_id หายไป, โฟลเดอร์ซ้ำซ้อน, ตัวแปรเงินเดือนมีแค่ 5 ตัวแทนที่จะเป็น 9 และพิกัด GPS ถูกฮาร์ดโค้ด

  3. 03 การแก้ไข

    เก็บ SQL schema, RLS และการตัดสินใจด้านการออกแบบไว้ แต่ เขียนโค้ดส่วนที่มีปัญหาใหม่ตั้งแต่ต้น หลังเขียนใหม่ ผมยืนยันด้วยตัวเองว่า flutter analyze รายงาน "No issues found"

คำสั่งจริง (ตัดตอน)

  • ดึงหน้าจอทั้งหมดออกมาจากดีไซน์ก่อน แล้วค่อยเริ่มสร้าง — ทำสองอย่างพร้อมกันจะพันกันOriginal디자인을 전 화면 다 뽑은 뒤에 개발을 시작하자 — 병행하면 꼬여.
  • แทนที่จะบล็อกเด็ดขาด ให้แอดมินตรวจสอบสิ่งที่น่าสงสัยแทนOriginal완전히 막기보다, 이상하면 관리자가 검토하게 하자.

Fig. attennfc-03

ตรวจผลงานของ AI เทียบกับมาตรฐาน — แล้วสั่งแก้

Before

  • Only 5 of 9 payroll variables
  • NFC library API mismatch
  • Hard-coded GPS · duplicated folders

คำสั่งของผม (ใจความ)

เก็บดีไซน์และโมเดลข้อมูลไว้ แล้วเขียนโค้ดที่มีปัญหาใหม่ตั้งแต่ต้น

Original설계·데이터 모델은 유지하고, 문제 코드는 처음부터 다시 작성해

After

  • ✓ ตัวแปรเงินเดือนครบทั้ง 9 ตัว
  • ✓ flutter analyze — No issues found
AttenNFC — attennfc 04 mobile dark

04

จุดที่ติดขัดและวิธีแก้

  • ข้อจำกัดการยืนยัน Wi-Fi บน iOS: iOS จำกัดการเข้าถึง Wi-Fi การตรวจชั้นเสริมจึงอาจล้มเหลว ผมกำกับให้ fallback ไปใช้การยืนยันระยะ GPS อย่างเดียว และบันทึก "ข้ามการตรวจ Wi-Fi" ไว้ให้ตรวจสอบย้อนหลังได้
  • การปลอมเวลาตอนออฟไลน์: เพื่อรับมือกับการเปลี่ยนนาฬิกาของเครื่อง ผมกำกับให้สร้างตรรกะประเมินเวลาจริงโดยรวมเวลาเซิร์ฟเวอร์ล่าสุดกับเวลาที่ผ่านไป และส่งกรณีที่ต่างกันมากไปให้แอดมินตรวจสอบ

Fig. attennfc-05

กฎความผิดปกติ 5 ข้อ — แยกทาง ไม่ใช่แค่บล็อก

อินพุตความพยายามลงเวลา
ตรวจสอบกฎความผิดปกติ 5 ข้อ
ปกติบันทึก
ผิดปกติบันทึก + ให้แอดมินตรวจสอบManual Review
ร้ายแรงปฏิเสธทันทีเช่น อุปกรณ์ไม่ตรงกัน
“แทนที่จะบล็อกทุกอย่าง ให้แอดมินตรวจสอบสิ่งที่ผิดปกติแทน” ปฏิเสธทันทีเฉพาะการละเมิดร้ายแรงเท่านั้นOriginal“완전히 막기보다, 이상하면 관리자가 검토하게 하자.”

Fig. attennfc-06

การยืนยันเวลาแบบออฟไลน์ (TrueTime)

Aเวลาเซิร์ฟเวอร์ล่าสุด
Bเวลาที่ผ่านไปบนเครื่องไม่ได้รับผลจากการปรับนาฬิกา
A + Bเวลาจริงที่ประเมินได้
ต่างกันน้อยบันทึก
ต่างกันมากให้แอดมินตรวจสอบ
เพื่อจับการปรับนาฬิกาของเครื่อง ระบบประเมินเวลาจริงจากเวลาเซิร์ฟเวอร์ล่าสุดบวกกับเวลาที่ผ่านไป

Case 01

โค้ดที่สร้างขึ้นไม่ถึงมาตรฐาน

  1. อาการ

    โค้ดที่สร้างขึ้นไม่ถึงมาตรฐาน — ตัวแปรเงินเดือนมีแค่ 5 จาก 9 ตัว, API ของไลบรารี NFC ไม่ตรงกัน, พิกัด GPS ถูกฮาร์ดโค้ด, โฟลเดอร์ซ้ำซ้อน

  2. สิ่งที่ผมบอก AI

    ชี้จุดที่คลาดเคลื่อนทีละจุดเทียบกับมาตรฐานของผม (9 ตัวแปร, API โทเคนแบบไดนามิก, พิกัดเป็นค่าตั้งค่า)Original내가 세운 기준(변수 9종·동적 토큰 API·좌표 설정값)을 조목조목 대조해 어긋난 지점을 지적.
  3. ความพยายามแรกของ AI

    การแก้ทีละจุดทำให้ปัญหาเดิมกลับมาเรื่อย ๆ

  4. จุดที่ผมจับได้

    เก็บ SQL schema, RLS และดีไซน์ไว้ แต่โค้ดที่มีปัญหาต้องเขียนใหม่ ไม่ใช่ปะแก้

  5. วิธีแก้

    กำกับให้เขียนใหม่ตั้งแต่ต้น แล้วยืนยันว่า flutter analyze รายงานศูนย์ issue

  6. การป้องกันไม่ให้เกิดซ้ำ

    ผมตรวจผลงานของ AI ผ่าน "เช็กลิสต์มาตรฐาน" และใช้กฎเขียนใหม่เมื่อคลาดเคลื่อน

05

ผลลัพธ์

  • ออกแบบและสร้าง ความปลอดภัย 4 ชั้น และ กฎความผิดปกติ 5 ข้อ พร้อม flow ให้แอดมินตรวจสอบ
  • เอนจินสูตรเงินเดือนที่ไม่มีการฮาร์ดโค้ด (9 ตัวแปร, เทมเพลตตามประเภทธุรกิจ, ประมาณการเงินเดือนแบบเรียลไทม์)
  • การยืนยันเวลาแบบออฟไลน์ที่จับการปรับนาฬิกาได้แม้ไม่มีอินเทอร์เน็ต
  • ตรรกะหลักรอบแรกเสร็จ (flutter analyze รายงานศูนย์ issue) — กำลังพัฒนา

06

มองย้อนกลับ

ทักษะที่สำคัญที่สุดในโปรเจกต์นี้คือการไม่เชื่อผลงานของ AI แบบไม่ไตร่ตรอง — ตรวจเทียบกับมาตรฐานแล้วสั่งให้ทำใหม่ ยิ่งเป็นส่วนที่ "ผิดไม่ได้" (ความปลอดภัย เงินเดือน) คำตอบยิ่งเป็นการเขียนมาตรฐานไว้ก่อน ขั้นต่อไปคือเชื่อมหน้าจอที่ออกแบบไว้และทดสอบกับธุรกิจนำร่อง

หน้าจอเพิ่มเติม · 8 ภาพ

AttenNFC — แนะนำการใช้งาน — ออกแบบใน Google Stitch
แนะนำการใช้งาน — ออกแบบใน Google Stitch
AttenNFC — เทมเพลตตามประเภทธุรกิจ
เทมเพลตตามประเภทธุรกิจ
AttenNFC — เอนจินสูตรเงินเดือน
เอนจินสูตรเงินเดือน
AttenNFC — สรุปเงินเดือนรายเดือน
สรุปเงินเดือนรายเดือน
AttenNFC — ปรับเงินเดือนรายบุคคล
ปรับเงินเดือนรายบุคคล
AttenNFC — คิวตรวจสอบความผิดปกติ
คิวตรวจสอบความผิดปกติ
AttenNFC — ปฏิทินวันหยุด
ปฏิทินวันหยุด
AttenNFC — บันทึกการตรวจสอบ (audit log)
บันทึกการตรวจสอบ (audit log)

หน้าแอดมินออกแบบด้วย Google Stitch (ออกแบบด้วย AI) ส่วนการพัฒนาด้วย Flutter กำลังดำเนินการ

(01) Review

Honest รีวิว

ถ้านักพัฒนาเป็นคนสร้าง

จุดแข็ง2
  • ความเร็ว — ภายใน 7 วัน: ล็อกสแต็ก ย้ายแบ็กเอนด์ วางรากฐานเสร็จ

    เปลี่ยนจาก Firebase → Supabase และเขียนใหม่ทั้งหมดหนึ่งรอบภายในสัปดาห์แรก ด้วยตัวคนเดียว

  • เอกสาร — ออกแบบละเอียดกว่าสเปกทั่วไปในขั้นนี้

    การเก็บข้อมูล 90 วันตาม PDPA, กฎความผิดปกติ 5 ข้อ, ตัวแปรเงินเดือน 9 ตัว และข้อจำกัดของแพลตฟอร์ม เขียนไว้ก่อนเริ่มโค้ด

เทียบเท่า3
  • สถาปัตยกรรม — โครงสร้างแบบ clean architecture

    แบ่ง data / domain / presentation ตามฟีเจอร์ มี repository interface และ dependency injection

  • ความอ่านง่าย — สะอาด

    คอมเมนต์และการตั้งชื่อชัดเจน ไม่มี debug print หลงเหลือ

  • ประสิทธิภาพ — ยังเร็วเกินไปที่จะวัด

    ยังไม่มีโหลดจริง แต่พื้นฐาน (การ dispose animation, constant widget) ทำไว้แล้ว

ขั้นต่อไป (กำลังเติมเต็ม)4
  • ความสมบูรณ์ของฟีเจอร์ — พัฒนาแล้ว ~10–15% ของที่ออกแบบไว้

    ออกแบบละเอียดก่อน ตอนนี้มี 4 หน้าจอที่รันบนข้อมูลจำลอง

    วางแผน → จำกัดขอบเขตเหลือ 'ล็อกอิน → ลงเวลาครบหนึ่งรอบ ตรวจสอบบนเซิร์ฟเวอร์' ทำให้เสร็จ แล้วค่อยขยาย

  • ความปลอดภัย — ออกแบบแล้ว ยังไม่ได้สร้าง

    ออกแบบการยืนยัน 4 ชั้นและการเก็บ GPS ให้น้อยที่สุด (PDPA) ไว้แล้ว ส่วนการตรวจฝั่งเซิร์ฟเวอร์กำลังสร้างไปพร้อมกับ flow หลัก

    วางแผน → ย้ายการอนุมัติและการตรวจสอบไปไว้บนเซิร์ฟเวอร์ทั้งหมดก่อนเริ่มทดลองใช้งานจริง (pilot)

  • การทดสอบและ CI — ยังไม่มี รอสร้าง remote repo

    สูตรเงินเดือนเกี่ยวข้องกับเงิน แต่ยังไม่มีการทดสอบ

    วางแผน → ทดสอบสูตรเงินเดือนก่อน จากนั้นสร้าง remote repo แบบส่วนตัวและ CI

  • การรองรับหลายภาษาและการเข้าถึง — ออกแบบโดยเน้นภาษาไทย ยังไม่มีไฟล์แปล

    มีข้อความภาษาอังกฤษฮาร์ดโค้ด 31 จุด และยังไม่มี label สำหรับโปรแกรมอ่านหน้าจอ

    วางแผน → เพิ่มไฟล์แปลและ label ทีละหน้าจอ ไม่รอจนถึงตอนเปิดตัว

โปรเจกต์ถัดไป →

แพลตฟอร์มสตรีมมิงวิดีโอด้วย AI

บริการสตรีมมิงวิดีโอแบบ serverless ทั้งระบบบน Cloudflare edge — แปลอัตโนมัติด้วย AI 10 ภาษา และชำระค่าสมาชิกด้วยคริปโต สร้างคนเดียวด้วย AI

แพลตฟอร์มสตรีมมิงวิดีโอด้วย AI desktop screenshot
แพลตฟอร์มสตรีมมิงวิดีโอด้วย AI mobile screenshot
ดูกรณีศึกษา
เรซูเม่ PDF