เกี่ยวกับหารบ่
อัปเดตเมื่อ 2026-07-29
หารบ่ (Hanbo) ช่วยหารบิลอย่างยุติธรรม แชร์ให้เพื่อน และสร้าง QR พร้อมเพย์ รองรับ Service Charge / VAT, OCR สลิปใบเสร็จ การแจ้งเตือนแบบพุช (FCM) และบัญชีเสริมเพื่อให้บิลตามคุณไปได้ทุกอุปกรณ์
เว็บไซต์จริง: bill.dolity.me
เวอร์ชัน 3.0 สร้างด้วย Nuxt 4, Vue 3, Tailwind CSS v4, DaisyUI v5 และดีพลอยบน Cloudflare ผ่าน NuxtHub กับ D1
ของใหม่ใน 3.0
- บัญชีเสริม — เข้าสู่ระบบด้วยอีเมล/รหัสผ่าน หรือ Google (Better Auth) บิลแบบแขกบนอุปกรณ์จะถูก claim อัตโนมัติหลังล็อกอิน
- ฐานข้อมูลแบบ normalize — บิล สมาชิก รายการ การชำระเงิน เซสชันแขก และโทเคนพุช ในสคีมา D1 เชิงสัมพันธ์ (Drizzle ORM)
- บันทึกการชำระเงิน — ตาราง
paymentsพร้อมตรวจสลิปและสถานะ (pending/verified/rejected) - หน้าแรกใหม่ — ส่วน landing แบบโมดูลาร์ (hero, วิธีใช้, คุณสมบัติ, FAQ, คู่มือ)
- แพลตฟอร์ม SEO — sitemap, robots, Schema.org, canonical และเส้นทางมี locale (
/th/…,/en/…) - หน้านโยบายและความน่าเชื่อถือ — About, Contact, Terms, Privacy
- สคริปต์ migrate โปรดักชันแบบเป็นระยะ — อัปเกรดข้อมูล D1 เดิมอย่างปลอดภัย
- เครื่องมือนักพัฒนา — Biome, Vitest และสคริปต์สำรอง/ตรวจ D1
คุณสมบัติ
สร้างบิลและหาร
- แก้บิลหน้าเดียว: ชื่อ รายการ สมาชิก Service Charge/VAT และ PromptPay
- OCR ใบเสร็จ: ถ่าย/อัปโหลด → บีบอัดฝั่ง client → Gemini API ดึงรายการ VAT และ service charge
- สมาชิก: เพิ่ม แก้ไข ลบ ผูก PromptPay กำหนดผู้จ่ายและผู้ร่วมต่อรายการ
- เทมเพลตสมาชิก บันทึกกลุ่มไว้ใช้ซ้ำ (ต่ออุปกรณ์หรือผู้ใช้ที่ล็อกอิน)
- พรีเซ็ตเน้นไทย: ร้านอาหาร บาร์/เครื่องดื่ม ทริป สาธารณูปโภค
- อินพุตอัจฉริยะ และการสรุปหนี้พร้อม QR พร้อมเพย์ดาวน์โหลดได้
การแชร์และการแจ้งเตือน
- ลิงก์แชร์
/bill/share/[id](พาไป URL ที่มี locale) - ตัวตนแขก: ผู้เยี่ยมชมเลือกช่องสมาชิก เก็บด้วย visitor token
- แจ้งเตือน FCM ให้สมาชิกที่ยังไม่จ่าย (ไทย/อังกฤษตามภาษา)
- เทมเพลตข้อความแชร์ พร้อมเครดิต “Powered by Hanbo” ได้
- CTA บนหน้าแชร์ให้สร้างบิลของตัวเอง
บัญชี (ไม่บังคับ)
- เริ่มแบบแขกได้เลย cookie อุปกรณ์ (
hanbo_device_id) เป็นเจ้าของบิลแขก - ล็อกอิน/สมัครด้วยอีเมล+รหัสผ่าน หรือ Google OAuth
- Auto-claim หลังล็อกอิน: บิลและเทมเพลตแขกผูกกับผู้ใช้
- ซิงก์ข้ามอุปกรณ์เมื่อล็อกอินแล้ว
Analytics คู่มือ และ UX
- แดชบอร์ดสรุปการใช้จ่าย แนวโน้ม และ insight
- คู่มือ SEO เน้นไทย (หารอย่างยุติธรรม มื้ออาหาร เครื่องดื่ม ทริป)
- อธิบายวิธีคำนวณบนหน้าแรก
- i18n ไทย (ค่าเริ่มต้น) และอังกฤษ
- ธีมสว่าง/มืด (DaisyUI) เลย์เอาต์มือถือก่อน และ Google Analytics (ถ้าเปิด)
เทคโนโลยี
| ชั้น | เทคโนโลยี |
|---|---|
| Framework | Nuxt 4, Vue 3, Vue Router 5 |
| Language | TypeScript |
| Styling | Tailwind CSS v4, DaisyUI v5 |
| State | Pinia |
| Auth | Better Auth |
| Backend | NuxtHub, Nitro, server routes |
| Database | Drizzle ORM, Cloudflare D1 |
| Deploy | Cloudflare Workers/Pages, Wrangler |
| SEO / i18n | @nuxtjs/seo, @nuxtjs/i18n |
| Notifications | Firebase Cloud Messaging (FCM) |
| OCR | Google Gemini API |
เส้นทางหลัก
| เส้นทาง | คำอธิบาย |
|---|---|
/ |
หน้า landing |
/bill |
รายการบิลของฉัน |
/bill/create |
สร้าง / แก้ไขบิล |
/bill/[id] |
รายละเอียดบิลฝั่งโฮสต์ |
/bill/share/[id] |
มุมมองแชร์แบบอ่านอย่างเดียว |
/analytics |
วิเคราะห์ค่าใช้จ่าย |
/login |
เข้าสู่ระบบ / สมัคร |
/guides/* |
บทความคู่มือ |
/about, /contact, /terms, /privacy |
หน้าข้อมูลและกฎหมาย |
เส้นทางฝั่งผู้ใช้มี locale prefix (/th/…, /en/…)
API โดยสรุป
| Method | Path | วัตถุประสงค์ |
|---|---|---|
| GET/POST | /api/bills |
รายการ / สร้างบิล |
| GET/PATCH/DELETE | /api/bills/[id] |
รายละเอียด / อัปเดต / ลบ |
| POST | /api/bills/claim |
claim บิลแขกหลังล็อกอิน |
| GET | /api/bills/share/[id] |
ข้อมูลบิลที่แชร์ |
| GET/POST | /api/bills/share/[id]/identity |
ตัวตนสมาชิกแขก |
| POST | /api/bills/share/[id]/register-push |
ลงทะเบียนโทเคน FCM |
| POST | /api/bills/[id]/notify |
ส่งการแจ้งเตือนให้จ่าย |
| POST | /api/ocr/receipt |
OCR ใบเสร็จผ่าน Gemini |
| POST | /api/verify-slip |
บันทึกสลิปที่ยืนยันแล้ว |
| GET/POST | /api/templates |
CRUD เทมเพลตสมาชิก |
| DELETE | /api/templates/[id] |
ลบเทมเพลต |
ข้อมูลและการ migrate
หารบ่ 3.0 ใช้สคีมา D1 แบบ normalize การอัปเกรดจากฐานข้อมูลเก่าใช้สคริปต์ migrate เป็นระยะ พร้อมตรวจและสำรองข้อมูล การติดตั้งใหม่ใช้ Drizzle migrations
สัญญาอนุญาต
MIT — Dolity
สนับสนุนเรา
ถ้าแอปของเราช่วยคุณได้ สามารถเลี้ยงกาแฟเราได้
Buy me a coffeeเปิดในแท็บใหม่