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 วัน
+9 days
2026-09-17
บิลด์แรกที่ใช้งานได้ · ล่าสุด
2026-09-08
คำสั่งแรก
+9 days 2026-09-17
บิลด์แรกที่ใช้งานได้ · ล่าสุด
จากไอเดียสู่ตรรกะหลักที่ทำงานได้ ~9 วัน (ทำงานจริง ~5–7 วัน) · กำลังพัฒนา ยังไม่ได้ดีพลอย
คำสั่งแรก: "มาออกแบบหน้าจอและฟีเจอร์ทั้งหมดของแอปลงเวลาที่ใช้แท็ก 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 pay Overtime Night Late …
คำนวณ 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.) Fig. attennfc-direction
การกำกับ AI
01 คำสั่งแรก
สร้าง DB schema การจัดการ state (provider) และเอนจินคำนวณเงินเดือนตามมาตรฐานด้านบน
02 สิ่งที่ผมตรวจ
เมื่อรีวิวโค้ดที่สร้างขึ้น ผมพบปัญหาซ้ำ ๆ — API ของไลบรารี NFC ไม่ตรงกัน, company_id หายไป, โฟลเดอร์ซ้ำซ้อน, ตัวแปรเงินเดือนมีแค่ 5 ตัวแทนที่จะเป็น 9 และพิกัด GPS ถูกฮาร์ดโค้ด
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
ข้อจำกัดการยืนยัน 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
โค้ดที่สร้างขึ้นไม่ถึงมาตรฐาน ! อาการ
โค้ดที่สร้างขึ้นไม่ถึงมาตรฐาน — ตัวแปรเงินเดือนมีแค่ 5 จาก 9 ตัว, API ของไลบรารี NFC ไม่ตรงกัน, พิกัด GPS ถูกฮาร์ดโค้ด, โฟลเดอร์ซ้ำซ้อน
› สิ่งที่ผมบอก AI
ชี้จุดที่คลาดเคลื่อนทีละจุดเทียบกับมาตรฐานของผม (9 ตัวแปร, API โทเคนแบบไดนามิก, พิกัดเป็นค่าตั้งค่า)Original 내가 세운 기준(변수 9종·동적 토큰 API·좌표 설정값)을 조목조목 대조해 어긋난 지점을 지적. ↺ ความพยายามแรกของ AI
การแก้ทีละจุดทำให้ปัญหาเดิมกลับมาเรื่อย ๆ
◎ จุดที่ผมจับได้
เก็บ SQL schema, RLS และดีไซน์ไว้ แต่โค้ดที่มีปัญหาต้องเขียนใหม่ ไม่ใช่ปะแก้
✓ วิธีแก้
กำกับให้เขียนใหม่ตั้งแต่ต้น แล้วยืนยันว่า flutter analyze รายงานศูนย์ issue
⟲ การป้องกันไม่ให้เกิดซ้ำ
ผมตรวจผลงานของ AI ผ่าน "เช็กลิสต์มาตรฐาน" และใช้กฎเขียนใหม่เมื่อคลาดเคลื่อน
ออกแบบและสร้าง ความปลอดภัย 4 ชั้น และ กฎความผิดปกติ 5 ข้อ พร้อม flow ให้แอดมินตรวจสอบ
เอนจินสูตรเงินเดือนที่ไม่มีการฮาร์ดโค้ด (9 ตัวแปร , เทมเพลตตามประเภทธุรกิจ, ประมาณการเงินเดือนแบบเรียลไทม์)
การยืนยันเวลาแบบออฟไลน์ที่จับการปรับนาฬิกาได้แม้ไม่มีอินเทอร์เน็ต
ตรรกะหลักรอบแรกเสร็จ (flutter analyze รายงานศูนย์ issue) — กำลังพัฒนา
ทักษะที่สำคัญที่สุดในโปรเจกต์นี้คือการไม่เชื่อผลงานของ AI แบบไม่ไตร่ตรอง — ตรวจเทียบกับมาตรฐานแล้วสั่งให้ทำใหม่ ยิ่งเป็นส่วนที่ "ผิดไม่ได้" (ความปลอดภัย เงินเดือน) คำตอบยิ่งเป็นการเขียนมาตรฐานไว้ก่อน ขั้นต่อไปคือเชื่อมหน้าจอที่ออกแบบไว้และทดสอบกับธุรกิจนำร่อง
หน้าจอเพิ่มเติม · 8 ภาพ
แนะนำการใช้งาน — ออกแบบใน Google Stitch เทมเพลตตามประเภทธุรกิจ เอนจินสูตรเงินเดือน สรุปเงินเดือนรายเดือน ปรับเงินเดือนรายบุคคล คิวตรวจสอบความผิดปกติ ปฏิทินวันหยุด บันทึกการตรวจสอบ (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 ทีละหน้าจอ ไม่รอจนถึงตอนเปิดตัว
Chapter 04
Chapter takeaway
สิ่งที่โปรเจกต์นี้สอนผม
01 ยิ่งเป็นส่วนที่ "ผิดไม่ได้" มาตรฐานยิ่งต้องมาก่อนโค้ด และต้องเป็นลายลักษณ์อักษร02 แม้เป็นโค้ดที่ AI เขียน ก็ต้องตรวจเทียบกับมาตรฐาน และเมื่อคลาดเคลื่อนให้สั่งเขียนใหม่03 "บันทึก + ให้แอดมินตรวจสอบ" อาจเป็นนโยบายที่ปลอดภัยกว่าการบล็อกเด็ดขาดในโลกจริงโปรเจกต์ถัดไป →
บริการสตรีมมิงวิดีโอแบบ serverless ทั้งระบบบน Cloudflare edge — แปลอัตโนมัติด้วย AI 10 ภาษา และชำระค่าสมาชิกด้วยคริปโต สร้างคนเดียวด้วย AI
© 2026 Hyunjun Kim. สร้างด้วย Next.js, Tailwind CSS และ Motion — ร่วมกับ AI
Back to top ↑