v0.9.25
เปลี่ยนแปลง
- ป๊อปอัปประกาศหน้าแรก — ย้ายการตั้งค่าจาก
data/announcement.jsonและNEXT_PUBLIC_ANNOUNCEMENT_ENABLEDไปเก็บในตารางSiteAnnouncementแอดมินแก้ไขได้ที่/admin/settings/announcementพฤติกรรมGET /api/announcementด้านผู้ใช้ (ช่วงวันที่, การปิด, คีย์ localStorage) เหมือนเดิม
v0.9.24
เพิ่ม
- รายจ่ายต่อเดือนเฉลี่ย — แท็บ "ทั้งหมด" ใน
/dashboard/recurringแสดงสรุปรายจ่ายต่อเดือนเฉลี่ย (รวมรายการ EXPENSE ที่เปิดใช้งาน แปลงตามความถี่เป็นรายเดือน)
เปลี่ยนแปลง
- เมนูตัวเลือกต่อรายการ recurring — ปุ่มบันทึกการจ่ายและแก้ไขรวมอยู่ในเมนู dropdown (⋯) แทนปุ่มแยก กดแล้วเลือก "บันทึกการจ่าย" หรือ "แก้ไข"
v0.9.23
เพิ่ม
- ชื่อหมวดหมู่ภาษาอังกฤษ (nameEn) — หมวดหมู่รองรับชื่อภาษาอังกฤษแบบ optional เมื่อภาษาของแอปเป็นอังกฤษ ชื่อหมวดหมู่จะแสดงเป็นภาษาอังกฤษเมื่อมี
nameEn; หมวดหมู่ค่าเริ่มต้นใช้คำแปลในระบบ (เช่น อาหาร → Food) หมวดหมู่ที่สร้างเองสามารถตั้งnameEnได้เมื่อสร้างหรือแก้ไขใน การตั้งค่า → หมวดหมู่ - getCategoryDisplayName — ฟังก์ชันช่วยใน
lib/categories-display.tsสำหรับแสดงชื่อหมวดหมู่ตาม locale ทั่วทั้งแอป (ฟอร์มรายการ, รายการ, รายการรายเดือน ฯลฯ)
เปลี่ยนแปลง
- Category API — POST และ PATCH
/api/categoriesรองรับnameEn(optional) ใน request body - ฟอร์มหมวดหมู่ — Dialog เพิ่ม/แก้ไข มีฟิลด์ "ชื่อหมวดหมู่ (ภาษาอังกฤษ)" แบบ optional
v0.9.22
เพิ่ม
- การระงับบัญชี — ผู้ใช้สามารถระงับบัญชีได้จาก การตั้งค่า → ความเป็นส่วนตัว มีช่วง grace period (ค่าเริ่มต้น 30 วัน ปรับได้ผ่าน
ACCOUNT_GRACE_PERIOD_DAYS) ก่อนลบถาวร ระหว่าง grace period จะยกเลิกทุกเซสชันและปิดการเข้าสู่ระบบ - การกู้คืนบัญชี — บัญชีที่ถูกระงับสามารถกู้คืนได้ภายใน grace period ผ่าน
/restore-account(อีเมล + รหัสผ่าน) หลังกู้คืนสำเร็จสามารถเข้าสู่ระบบได้อีกครั้ง - นำอีเมลกลับมาใช้ได้หลังลบ — เมื่อ grace period หมดอายุ อีเมลเดิมสามารถนำไปสมัครใหม่ได้ บัญชีที่ลบจะถูก soft-delete (อีเมลเปลี่ยนเป็น
deleted_<userId>_<email>) เพื่อเก็บไว้สำหรับ analytics และ audit - Activity Log — เพิ่ม actions:
ACCOUNT_DEACTIVATE,ACCOUNT_RESTORE,ACCOUNT_DELETEDสำหรับ audit trail - หน้าเข้าสู่ระบบ — ลิงก์ "กู้คืนบัญชีที่ถูกระงับ?" และแถบแจ้งเตือนเมื่อ redirect มาจากการระงับ พร้อมวันที่หมดอายุการกู้คืน
เปลี่ยนแปลง
- การเข้าสู่ระบบ — Credentials และ Google OAuth ตรวจสอบสถานะผู้ใช้แล้ว ผู้ใช้ที่ถูกระงับหรือลบแล้วจะถูกปฏิเสธ JWT refresh ตรวจสอบสถานะและยกเลิกเซสชันที่หมดอายุสำหรับผู้ใช้ที่ถูกระงับ
- การสมัครสมาชิก — รองรับผู้ใช้เดิมที่อยู่ใน grace period (409) และเลย grace period (finalize deletion แล้วอนุญาตให้สร้างบัญชีใหม่ด้วยอีเมลเดิมได้)
v0.9.21
เพิ่ม
- ปุ่มกลับขึ้นบนหน้าแรก — ปุ่มกลมลอยมุมขวาล่างพร้อมไอคอนลูกศรขึ้น แสดงบนหน้า landing สาธารณะ (
/) เมื่อผู้ใช้เลื่อนลง ปุ่มจะซ่อนเมื่ออยู่ด้านบน; หลังเลื่อนลงเกินระยะหนึ่งจะเลื่อนโผล่จากขวาพร้อม transition ความโปร่งใส กดแล้วเลื่อนกลับขึ้นบนอย่างนุ่มนวล เมื่อกลับถึงบนสุดปุ่มจะเลื่อนกลับและจางออก ใช้ LucideArrowUpและสไตล์ให้เข้ากับธีมสว่าง/มืดของ landing
v0.9.20
เพิ่ม
- ป๊อปอัปประกาศบนหน้าแรก — แสดง modal บนหน้าแรกสาธารณะ (
/) เมื่อตั้งNEXT_PUBLIC_ANNOUNCEMENT_ENABLED=trueเนื้อหาอ่านจากdata/announcement.json(รูป, หัวข้อ, ข้อความ, ลิงก์ CTA ถ้ามี) ช่วงวันที่start_at/end_atกำหนดว่าจะแสดงหรือไม่ ปิดได้ และมีตัวเลือก "ไม่ต้องแสดงอีกในวันนี้" (เก็บใน localStorage ตามวันที่) หรือปิดแบบถาวรเมื่อshow_once: true - เนื้อหาประกาศหลายภาษา — ใน config ฟิลด์
title,content,image_alt,action_labelรองรับไทยและอังกฤษแบบ{ th, en }ระบบจะเลือกข้อความตามภาษาของแอป
เปลี่ยนแปลง
- ตำแหน่งแสดงประกาศ — แสดงเฉพาะหน้าแรก (
/) ไม่แสดงใน dashboard โดย component ถูก mount ใน root layout
v0.9.19
เพิ่ม
- การยินยอมคุกกี้ (Cookie consent) — แถบแจ้งเตือนคุกกี้แสดงเมื่อเข้าใช้งานครั้งแรก ผู้ใช้สามารถกด "ยอมรับทั้งหมด" (เปิด analytics) หรือ "จัดการการตั้งค่า" เพื่อเลือก: คุกกี้จำเป็น (เปิดตลอด) และ คุกกี้วิเคราะห์ (เลือกได้) การตั้งค่าถูกเก็บใน localStorage
- Analytics แบบมีเงื่อนไข — Vercel Analytics และ Speed Insights โหลดเฉพาะเมื่อผู้ใช้ยินยอมให้ใช้ analytics ไม่มีการติดตามก่อนได้รับความยินยอม
เปลี่ยนแปลง
- การโหลด Analytics — เปลี่ยนจากการใส่ Analytics/SpeedInsights ใน layout โดยตรง เป็น component
ConditionalAnalyticsที่ตรวจสอบ consent ก่อนแสดงผล
v0.9.18
เพิ่ม
- เมนูตัวเลือกต่อรายการแจ้งเตือน — แต่ละแถวการแจ้งเตือนมีปุ่ม "⋯" (ตัวเลือกเพิ่มเติม) มุมขวาบน แตะแล้วมีเมนู "ทำเครื่องหมายว่าอ่านแล้ว" หรือ "ทำเครื่องหมายว่ายังไม่อ่าน" ตามสถานะปัจจุบัน
- ทำเครื่องหมายว่ายังไม่อ่าน — การแจ้งเตือนแบบ persisted สามารถเปลี่ยนกลับเป็นยังไม่อ่านได้ผ่านเมนูต่อรายการ การแจ้งเตือนแบบ virtual ก็สามารถ "ยกเลิกการปิด" ได้เช่นกัน (ลบออกจาก localStorage)
- PATCH /api/notifications/read — รองรับ
{ ids: string[], unread: true }สำหรับทำเครื่องหมายว่ายังไม่อ่าน
เปลี่ยนแปลง
- Badge แจ้งเตือนเมื่อโหลดหน้า — ตัวเลขยังไม่อ่านโหลดเมื่อเปิดหน้าแล้ว แสดงได้โดยไม่ต้องเปิด panel ก่อน
- สถานะอ่านของ virtual alert — การแจ้งเตือนแบบ virtual (รายการประจำ งบประมาณ ฯลฯ) เก็บสถานะ "อ่านแล้ว" ใน
localStorageเพื่อให้ยังแสดงว่าอ่านแล้วหลัง refresh - การแจ้งเตือนบนมือถือ — ใช้ Sheet (drawer เลื่อนจากล่าง) แบบเต็มจอแทน Popover เพื่อ UX ดีขึ้นบนหน้าจอเล็ก
- Accessibility ของ Sheet — เพิ่ม SheetHeader พร้อม SheetTitle และ SheetDescription (sr-only) สำหรับ screen reader
v0.9.17
เพิ่ม
- Vercel Speed Insights — เพิ่ม
@vercel/speed-insights/nextใน root layout เพื่อเก็บข้อมูลประสิทธิภาพจากผู้ใช้จริง (Core Web Vitals) สำหรับการติดตามและปรับปรุง
v0.9.16
เปลี่ยนแปลง
- คง draft ของ slip upload ไว้ได้ — draft และผล OCR ของ slip upload ถูกเก็บใน
localStorageแล้ว จึงปิด dialog ไปทำอย่างอื่นก่อน แล้วกลับมาเปิดต่อภายหลังได้โดยไม่เสีย batch เดิม - ปิด dialog แล้วงานยังทำต่อได้ — การปิด dialog จะไม่ abort งาน OCR/upload ที่กำลังทำอยู่ หากยังอยู่หน้าเดิม และเมื่อเปิดกลับมาจะเห็นสถานะล่าสุดของแต่ละ slip
- กู้คืนงานหลัง refresh หน้า — draft ที่เสร็จแล้วหรือ error จะถูก restore หลัง refresh หน้า ส่วน draft ที่ยังประมวลผลไม่เสร็จจะถูก restore เป็นสถานะงานถูกขัดจังหวะเพื่อให้ตรวจสอบหรืออัปโหลดใหม่อย่างปลอดภัย
- ปรับ UI ตรวจสอบ slip — ระหว่างกำลังโหลด การ์ด slip จะยังไม่แสดง summary/edit controls; หลัง OCR เสร็จจึงค่อยแสดงสรุป
จำนวนเงิน,ประเภท,วันที่และซ่อน field ขั้นสูงไว้หลังส่วนแก้ไขแบบขยายได้ - เพิ่ม telemetry ระหว่างอัปโหลด — dialog แสดงเปอร์เซ็นต์อัปโหลด, ขนาดที่อัปโหลด/ทั้งหมด, ความเร็วอัปโหลดโดยประมาณ, ขนาดไฟล์ก่อน/หลัง compress, เวลาแต่ละ slip และเวลารวมทั้ง batch
- ปรับ action ของ slip upload — ในโหมด preview สามารถเพิ่ม slip เข้า batch เดิมได้ตามสถานะที่เหมาะสม และเมื่อเคลียร์ draft หมดก็ยังมี empty state ที่ใช้งานต่อได้ทันที
v0.9.15
เปลี่ยนแปลง
- หน้า Recurring บนมือถือ — การ์ดรายการใน
/dashboard/recurringปรับเป็น 2 แถวบนหน้าจอเล็ก เพื่อให้อ่านรายละเอียดได้ง่ายขึ้น และไม่ให้จำนวนเงินกับปุ่ม action เบียดกัน - ช่องวันที่ใน dialog บันทึกการจ่าย — วันที่จ่ายใน recurring confirm dialog เปลี่ยนมาใช้ปุ่มเปิดปฏิทินแบบ inline เหมือน transaction dialog แทน input วันที่แบบ native
- สวิตช์สถานะใน recurring settings — ใน dialog สร้าง/แก้ไข recurring ฟิลด์สถานะเปิดใช้งานในโหมดแก้ไขเปลี่ยนจาก checkbox เป็น toggle switch
- สไตล์ปุ่มบันทึกการจ่าย — ปุ่ม
บันทึกการจ่ายบนการ์ด recurring เปลี่ยนเป็นปุ่ม solid สีเขียวแทน outline เพื่อเน้น action หลัก
v0.9.14
เพิ่ม
- งบประมาณ: สร้าง/แก้ไข/ลบเทมเพลตในตั้งค่า — ในหน้างบประมาณ (
/dashboard/settings/budget) มีส่วน Templates ให้สร้าง รายการ แก้ไข และลบเทมเพลตงบได้ แต่ละเทมเพลตมีชื่อ งบรวม (ถ้าต้องการ) และรายการงบต่อหมวด (หมวด + จำนวน) แบบเพิ่มแถวได้ Dialog สร้าง/แก้ไขรองรับหลายแถวหมวดพร้อมปุ่มเพิ่ม/ลบ; ลบเทมเพลตมี dialog ยืนยัน การ์ดใช้เทมเพลตยังแสดงเมื่อมีเทมเพลต - งบประมาณ: แก้ไขงบต่อหมวด — แต่ละแถวงบหมวดของเดือนที่เลือกมีปุ่มแก้ไข (ไอคอนดินสอ) แตะแล้วเปิด dialog แก้จำนวนงบ (฿) ของหมวดนั้น บันทึกเรียก
PATCH /api/budgets/categories/[id]และโหลดความคืบหน้าใหม่ ไม่ต้องลบแล้วเพิ่มใหม่เพื่อเปลี่ยนวงเงิน
เปลี่ยนแปลง
- i18n ตั้งงบประมาณ — คีย์ใหม่ภายใต้
settings.budget:createTemplate,editTemplate,deleteTemplate,templateDeleteConfirm,editCategoryBudget,addLimitRow(EN/TH)
v0.9.13
เปลี่ยนแปลง
- โฟกัส input ใน dialog เต็มจอบนมือถือ — เมื่อ dialog เป็น fullscreen บนมือถือ การโฟกัสที่ input หรือ textarea ใดๆ (เช่น วันที่ บัญชี จำนวนเงิน หมายเหตุ) จะเลื่อนพื้นที่ scroll ของ dialog ให้ช่องที่โฟกัสอยู่ใน view อัตโนมัติ ทำใน
DialogBody(components/ui/dialog.tsx) เพื่อให้ทุก dialog ที่ใช้ (ฟอร์มธุรกรรม ฟอร์มบัญชี หมวดหมู่ ชำระบัตร เครดิต โปรไฟล์ ฯลฯ) ได้พฤติกรรมนี้โดยไม่ต้องแก้ทีละ dialog
v0.9.12
เปลี่ยนแปลง
- รองรับ Dark theme ครบถ้วน — คอมโพเนนต์ องค์ประกอบ และหน้าต่างๆ รองรับโหมดมืดครบ:
- เมนูล่างมือถือ — สีปรับตาม theme (พื้นหลัง ขอบ สถานะเลือก/ไม่เลือก) ผ่าน
useTheme() - หน้า Landing — เพิ่ม CSS variables
.dark .landing-pageสำหรับโหมดมืด - ปุ่ม CTA หน้า Landing — Dark variants สำหรับปุ่มเริ่มใช้งานและปุ่มหลัก
- หน้ารายการบัญชี — ปุ่มเพิ่มบัญชีและไอคอนมี dark variants
- Card type select — ไอคอนใช้
dark:text-stone-400 - Dialog เมนู sidebar บนมือถือ — รายการที่เลือกใช้
dark:bg-amber-900/50 dark:text-amber-100 - ปฏิทินรายการ — ข้อความจางใช้
dark:text-stone-500เพื่อ contrast ดีขึ้น - Bank combobox — ข้อความไม่พบผลลัพธ์มี dark variant
- เมนูล่างมือถือ — สีปรับตาม theme (พื้นหลัง ขอบ สถานะเลือก/ไม่เลือก) ผ่าน
v0.9.11
เพิ่ม
- เมนูล่างมือถือออกแบบใหม่ — พื้นหลังครีม ไอคอน + ข้อความต่อรายการ แถบแสดงสถานะเมื่อเลือก; 5 รายการ: หน้าหลัก บัญชี รายการ สรุป ตั้งค่า
- Hook useIsDesktopOrLarger — ตรวจจับ viewport ≥ 1024px (Tailwind
lg) สำหรับ layout เดสก์ท็อป - ตารางรายการแบบกระชับ (tablet) — บนจอ < 1024px: วันที่ + บัญชี + หมวดหมู่รวมในคอลัมน์เดียว; ซ่อนคอลัมน์ประเภท; จำนวนเงินแสดงด้วยสี (เขียว/แดง/น้ำเงิน); แตะแถวเพื่อเปิดเมนูแก้ไข/ลบ
- เมนูดำเนินการพร้อมรายละเอียด — เมื่อแตะรายการบน tablet dialog จะแสดงวันที่ บัญชี และจำนวนเงินก่อนปุ่มแก้ไข/ลบ
เปลี่ยนแปลง
- รายการล่าสุดบน Dashboard (มือถือ) — แสดงเฉพาะไอคอน (ไม่มี label รายรับ/รายจ่าย); วันที่แยกอีกบรรทัดด้วย
text-[10px] - ตารางรายการ (desktop) — ปุ่มแก้ไข/ลบยังอยู่ในตาราง; layout กระชับและเมนูแบบแตะใช้เฉพาะ tablet/mobile
- i18n รายการธุรกรรม — เพิ่มคีย์
dateAndAccount,tapToEditOrDelete,selectAction
v0.9.10
เพิ่ม
- Sidebar แบบ responsive — บนหน้าจอเล็ก (< 640px) sidebar เปิดเป็น dialog พร้อมเมนูนำทางแบบตาราง 2×2 เพื่อให้แตะใช้งานง่ายขึ้น
- เมนูล่างบนมือถือ — แถบนำทางคงที่ด้านล่างบนมือถือ (< 768px) พร้อมลิงก์ด่วนไป Dashboard บัญชี และปฏิทิน
- Hook useIsSmallScreen — ตรวจจับ viewport ต่ำกว่า Tailwind sm (640px) สำหรับปรับ UI แบบ mobile-first
- Dashboard layout แบบ responsive — Layout แบบคอลัมน์เดียวบนหน้าจอเล็ก; ข้อความบนปุ่มขึ้นบรรทัดใหม่เพื่อไม่ให้ล้น
เปลี่ยนแปลง
- สไตล์ปุ่มบน Dashboard — ปรับปรุงการตอบสนองทางสายตาและ accessibility ด้วยขอบและเงาที่ดีขึ้น
- คอมโพเนนต์ Dialog — ปรับสไตล์เนื้อหาให้เหมาะกับ overlay เมนู sidebar บนหน้าจอเล็ก
- การจัดการบัญชี — ปรับปรุงดีไซน์ปุ่มเพิ่มบัญชี; รองรับประเภทบัญชีเริ่มต้นในโมดัลสร้างบัญชี
v0.9.9
เพิ่ม
- ปุ่มเพิ่มรายการด่วนบน Dashboard — การ์ดยอดคงเหลือและการ์ดเพิ่มรายการด่วนย้ายไปอยู่เหนือปฏิทินในคอลัมน์ซ้าย ปุ่มเพิ่มรายการด่วนมี บันทึกรายรับ บันทึกรายจ่าย และโอนระหว่างบัญชี — แต่ละปุ่มเปิดฟอร์มธุรกรรมพร้อมประเภทที่เลือกไว้แล้ว
- ลิงก์จัดการบัญชี — การ์ดเพิ่มรายการด่วนมีลิงก์ไปหน้ารายการบัญชีเพื่อเข้าถึงได้เร็ว
เปลี่ยนแปลง
- ปรับ layout หน้า Dashboard — การ์ดสรุปออกแบบใหม่: การ์ดยอดคงเหลือใช้สไตล์เขียวเข้มเด่นชัด; การ์ดรายรับและรายจ่ายใช้พื้นหลังเขียวอ่อนและแอมเบอร์พร้อมวงกลมตกแต่ง จัด layout เป็นสองคอลัมน์: ซ้าย (ยอดคงเหลือ + ปุ่มเพิ่มรายการด่วน + ปฏิทิน), ขวา (รายรับ + รายจ่าย + รายการล่าสุด)
v0.9.8
เพิ่ม
- จดจำฉัน — เข้าสู่ระบบด้วยตัวเลือก "จดจำฉัน" เพื่อขยายระยะเวลาเซสชัน (ค่าเริ่มต้น 30 วันเมื่อติ๊ก; 24 ชั่วโมงเมื่อไม่ติ๊ก)
- ข้อกำหนดและเงื่อนไข — หน้าเว็บสาธารณะที่
/termsครอบคลุมข้อกำหนดการให้บริการ การใช้งานที่ยอมรับได้ และภาระผูกพันของผู้ใช้ มีลิงก์ในส่วน Footer - ช่วยเหลือและความคิดเห็น — ส่งรายงานบั๊กและคำขอฟีเจอร์ได้ที่ Settings → Help & Feedback; แอดมินจัดการที่
/admin/reports - ปรับโครงสร้างประเภทบัตร — เปลี่ยนจาก
cardTypeเป็นcardAccountType(credit/debit/prepaid/other) และcardNetwork(visa/master/jcb/amex/unionpay/truemoney/other) เพื่อจัดหมวดหมู่ชัดเจนขึ้น - โลโก้ธนาคารและไอคอนเครือข่ายบัตร — หน้ารายการบัญชีและฟอร์มแสดงโลโก้ธนาคารและไอคอนเครือข่ายบัตรเพื่อระบุตัวตนได้ง่ายขึ้น
- AccountCombobox และ CardTypeSelect — คอมโพเนนต์ใหม่สำหรับการเลือกบัญชีและการจัดการประเภทบัตรในฟอร์ม
เปลี่ยนแปลง
- ดีไซน์ Earth tone — หน้าแรก หน้า auth และ Dashboard อัปเดตด้วยโทนสี stone/amber/emerald ให้สอดคล้องกัน
- ดร็อปดาวน์และฟอร์มบัญชีการเงินปรับให้เข้ากับระบบดีไซน์ใหม่
การย้ายข้อมูล
v0.9.7
เพิ่ม
- เข้ารหัสเลขบัญชี/บัตร — เลขบัญชีเต็ม (โหมด FULL) ถูกเข้ารหัสด้วย AES-256-GCM ก่อนเก็บในฐานข้อมูล
- โหมดเก็บเลขบัญชี — บัญชีธนาคารและกระเป๋าเงินเลือกได้: เก็บเลขเต็ม (เข้ารหัส) หรือเก็บแค่ 4 ตัวท้าย
- บัตรเครดิตกรอก 4 ตัวท้าย — กรอกเฉพาะเลข 4 ตัวท้ายของบัตร ไม่เก็บเลขเต็ม
เปลี่ยนแปลง
- การลบบัญชี/บัตร — ใช้รหัสสุ่ม 6 ตัวยืนยันการลบทุกกรณี (แทนการกรอกเลขบัญชี)
- ปุ่มแสดงเลขเต็ม (eye) แสดงเฉพาะบัญชีที่เก็บเลขเต็ม (โหมด FULL) เท่านั้น
การย้ายข้อมูล
- เพิ่มฟิลด์
accountNumberModeและเปลี่ยนaccountNumberเป็น TEXT สำหรับเก็บข้อมูลเข้ารหัส - ต้องตั้ง
ENCRYPTION_KEYใน.envเพื่อใช้โหมดเก็บเลขเต็ม (สร้าง key:node -e "console.log(require('crypto').randomBytes(32).toString('base64'))")
v0.9.6
แก้ไข
- การ์ดสรุป "เดือนนี้" (รายรับ / รายจ่าย / ยอดคงเหลือ) และ รายการธุรกรรมล่าสุด บนหน้า Dashboard อัปเดตทันทีหลังเพิ่ม แก้ไข หรือลบธุรกรรมจากปฏิทิน — ก่อนหน้านี้ข้อมูลยังคงเป็นค่าเก่าแม้จะ refresh แล้ว เนื่องจาก API ใช้ stale-while-revalidate cache
v0.9.5
แก้ไข
- การ์ดสรุป "เดือนนี้" บนหน้า Dashboard แสดงรายรับ รายจ่าย และยอดคงเหลือเฉพาะเดือนปัจจุบันอย่างถูกต้องแล้ว — ก่อนหน้านี้จะรวมยอดจากทุกธุรกรรมตลอดเวลา
- ยอดเงินและจำนวนธุรกรรมในหน้า บัญชี อัปเดตทันทีหลังสร้าง แก้ไข หรือลบธุรกรรม — ไม่ต้อง refresh หน้าอีกต่อไป
- มุมมองปฏิทิน (จุดบนปฏิทินและรายการธุรกรรมในหน้าต่างวัน) รีเฟรชทันทีหลังเพิ่ม แก้ไข หรือลบธุรกรรม
- รายการธุรกรรม ในหน้า Transactions ก็แสดงการเปลี่ยนแปลงทันทีเช่นกัน
- การปิดรอบบัญชีบัตรเครดิตอัปเดตข้อมูล Statement ของบัญชีได้ถูกต้องโดยไม่ต้อง refresh หน้า
v0.9.4
เพิ่ม
- เพิ่มหน้า นโยบายความเป็นส่วนตัว สาธารณะที่
/privacy— เข้าถึงได้โดยไม่ต้องเข้าสู่ระบบ ครอบคลุมข้อมูลที่เก็บรวบรวม วิธีการใช้ข้อมูล บริการของบุคคลที่สาม (รวมถึง Cloudflare Turnstile) นโยบายการเก็บรักษาข้อมูล สิทธิ์ของผู้ใช้ และการลบบัญชี - เพิ่มลิงก์ไปยังหน้านโยบายความเป็นส่วนตัวในส่วน Footer ของหน้าแรก
v0.9.3
เพิ่ม
- เพิ่มหน้า Releases สาธารณะ — ทุกคนสามารถดูสิ่งที่อัปเดตได้โดยไม่ต้องเข้าสู่ระบบ
- เพิ่มหน้าแนะนำแอปสำหรับผู้เยี่ยมชม พร้อมตัวเลือกธีม (สว่าง / มืด / ตามระบบ) และตัวเลือกภาษา (ไทย / อังกฤษ)
v0.9.2
Improved
- หน้า Dashboard โหลดเร็วขึ้นอย่างเห็นได้ชัด รอน้อยลง ใช้งานได้เลย
v0.9.1
เพิ่ม
- ดู บันทึกการอัปเดต ได้โดยตรงในแอป ที่ Settings → Patch Notes เพื่อติดตามสิ่งที่เปลี่ยนแปลงเสมอ
v0.9.0
เพิ่ม
- โอนเงินระหว่างบัญชี — บันทึกการโอนเงินจากบัญชีหนึ่งไปยังอีกบัญชีได้แล้วในประเภท "โอน"
- ยอดคงเหลือในบัญชีคำนวณรวมรายการโอนด้วย และสามารถกรองในรายการธุรกรรมได้
- การนำเข้าไฟล์ CSV รองรับรายการโอนเงินแล้ว
การย้ายข้อมูล
- ฟีเจอร์โอนเงินต้องการเพิ่มข้อมูลในฐานข้อมูลเพื่อเชื่อมโยงบัญชีต้นทางและบัญชีปลายทางของแต่ละรายการโอนเข้าหากัน
v0.8.0
เพิ่ม
- หมวดหมู่ธุรกรรม — จัดระเบียบรายรับและรายจ่ายด้วยหมวดหมู่เริ่มต้น หรือสร้างหมวดหมู่เองได้ใน Settings
- ซ่อนบัญชี — ซ่อนบัญชีที่ไม่ต้องการใช้จากฟอร์มธุรกรรมได้โดยไม่ต้องลบทิ้ง
- บันทึกกิจกรรมตอนนี้ติดตามการสร้าง แก้ไข หรือลบบัญชีด้วย
การย้ายข้อมูล
- ฟีเจอร์ซ่อนบัญชีต้องการเพิ่มข้อมูลในฐานข้อมูลเพื่อจดจำว่าบัญชีไหนที่คุณเลือกซ่อนไว้
v0.7.0
เพิ่ม
- รองรับบัตรเครดิต — ติดตามค่าใช้จ่าย การชำระเงิน และรอบบัญชีของบัตรเครดิต
- ตั้งค่าวงเงิน วันปิดรอบบัญชี วันครบกำหนดชำระ และอัตราดอกเบี้ยได้ต่อบัตร
- รองรับบัตรหลายประเภท: Visa, Mastercard, JCB, Amex, UnionPay, TrueMoney
- เลือกธนาคารไทยจากรายการดร็อปดาวน์เมื่อเพิ่มบัตร
- หมายเลขบัตรและเลขบัญชีถูกปิดบังเพื่อความปลอดภัย
การย้ายข้อมูล
- ฟีเจอร์บัตรเครดิตต้องการโครงสร้างฐานข้อมูลใหม่เพื่อเก็บข้อมูลบัตร (วงเงิน, อัตราดอกเบี้ย, ประเภทบัตร, ธนาคาร, เลขบัญชี) และเพื่อติดตามรอบบัญชีรายเดือนและสถานะของธุรกรรม
v0.6.0
เพิ่ม
- ยืนยันอีเมล — หลังสมัครสมาชิก ระบบจะส่งอีเมลยืนยันให้ หน้าโปรไฟล์จะแสดงสถานะการยืนยัน และสามารถขอส่งอีเมลใหม่ได้หากจำเป็น
v0.5.0
เพิ่ม
- ลืมรหัสผ่าน? — รีเซ็ตรหัสผ่านผ่านอีเมลได้แล้วจากหน้าเข้าสู่ระบบ
v0.4.0
เพิ่ม
- บันทึกรายรับและรายจ่าย — สร้าง แก้ไข และลบธุรกรรมผ่านหน้าต่างที่ใช้งานง่าย กรองตามช่วงวันที่และประเภทได้
- มุมมองปฏิทิน — ดูรายรับรายจ่ายแบบรายวัน และเพิ่มหรือแก้ไขธุรกรรมได้โดยตรงจากปฏิทิน
- การ์ดสรุปข้อมูล บนหน้า Dashboard แสดงภาพรวมการเงินของคุณในทันที
- ส่งออก ธุรกรรมเป็นไฟล์ CSV พร้อมตัวกรองตามวันที่และประเภท
v0.3.0
เพิ่ม
- บันทึกกิจกรรม — ดูประวัติการดำเนินการต่าง ๆ ในบัญชีของคุณ เช่น การเข้าสู่ระบบ การเปลี่ยนรหัสผ่าน การแก้ไขธุรกรรม ได้ที่ Settings → Activity Log
- มีตัวกรองเพื่อค้นหากิจกรรมตามประเภทหรือวันที่
v0.2.0
เพิ่ม
- จัดการเซสชัน — ดูและยกเลิกเซสชันที่ใช้งานอยู่ได้จากการตั้งค่าบัญชี
- หน้าโปรไฟล์ — แก้ไขชื่อที่แสดง หรือเปลี่ยนรหัสผ่านได้ที่ Dashboard → Profile
- ระบบบันทึกเซสชันแยกตามอุปกรณ์ ทำให้เห็นว่าคุณเข้าสู่ระบบจากที่ไหนบ้าง และสามารถออกจากระบบจากระยะไกลได้