尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
แอปจัดการรายรับ–รายจ่ายภาษาไทยแบบ mobile-first ช่วยบันทึกรายจ่ายจากสลิปธนาคาร เพิ่มรายการด้วยตนเอง ตั้งงบประมาณ และวิเคราะห์พฤติกรรมการใช้เงิน พร้อมมาสคอต "น้องออม" แมวไทยสีส้มที่คอยแนะนำและให้กำลังใจ This is a Next.js (App Router) + TypeScript + Tailwind CSS v4 prototype PWA. Open http://localhost:3000 — it redirects to /onboarding on first run, then /home once onboarding is completed (tracked in the mocked profile record).檢視完整 README ↗
แอปจัดการรายรับ–รายจ่ายภาษาไทยแบบ mobile-first ช่วยบันทึกรายจ่ายจากสลิปธนาคาร เพิ่มรายการด้วยตนเอง ตั้งงบประมาณ และวิเคราะห์พฤติกรรมการใช้เงิน พร้อมมาสคอต "น้องออม" แมวไทยสีส้มที่คอยแนะนำและให้กำลังใจ
This is a Next.js (App Router) + TypeScript + Tailwind CSS v4 prototype PWA.
npm install
npm run dev
Open http://localhost:3000 — it redirects to /onboarding on first run, then
/home once onboarding is completed (tracked in the mocked profile record).
src/
app/ Route pages (Next.js App Router)
onboarding/ 3-slide onboarding
home/ Home Dashboard
history/ Transaction History (search/filter/swipe)
analytics/ Analytics & insights
budget/ Budget + Saving Goals
profile/ Profile & Privacy
add/expense|income|credit-card/ Manual entry forms
scan/ Slip capture/upload + OCR review flow
components/
ui/ Button, Card, ProgressBar, CategoryIcon, ScreenHeader, MascotTipCard
mascot/ Mascot.tsx — original "น้องออม" SVG character, 8 poses
illustrations/ Flat-vector/isometric scene illustrations
charts/ Recharts wrappers (donut, line, bar)
transactions/ TransactionForm, TransactionRow, AddTransactionSheet, SlipReviewSheet
nav/ AppShell, BottomNav
hooks/
useAppData.ts Central data hook: wires the database service into React state
lib/
types.ts Core data model (Transaction, Account, Budget, SavingGoal, UserProfile, ...)
categories.ts Category + bank definitions (labels, colors, icons)
mockData.ts ~25 seeded realistic Thai transactions, accounts, budget, goals
format.ts Thai Baht + Buddhist-era date formatting helpers
analytics.ts Derived-data calculations (sums, top categories/merchants, series)
insights.ts Rule-based Thai mascot coaching copy
services/
database.ts ALL storage reads/writes go through here (currently localStorage)
ocr.ts Mocked slip-scanning; swap internals for a real vision/OCR API
auth.ts Mocked session/PIN; swap internals for real auth
lib/services/database.ts to call
Supabase/Firebase instead of localStorage. Function signatures already
return Promises and match the shapes in lib/types.ts, so no consuming
component should need to change.lib/services/ocr.ts's scanSlip() to POST the captured
image to a real slip-reading/vision endpoint and map the response into a
SlipOcrResult.lib/services/auth.ts to call a real auth provider.Brand colors, type scale, radii, and motion are defined as CSS variables in
src/app/globals.css (prefixed --ag-*) and mirrored into Tailwind's
@theme inline block, so they're usable both as bg-ag-yellow-style
utility classes and as raw CSS variables.
components/mascot/Mascot.tsx — original character, no third-party assetscomponents/illustrations/Illustrations.tsx — original flat/isometric geometric scenesglobals.css
(slide-up on load, coin bounce, mascot blink, float, pulse ring), all
respecting prefers-reduced-motionlocalStorage and is seeded once per browser (see
ensureSeeded() in database.ts); clearing site data or using the
Profile screen's "ลบข้อมูลทั้งหมด" resets it.