尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗A production-grade personal finance dashboard for managing UAE + India finances.
Built with Next.js 14 · Supabase · Tailwind · Claude AI · Gemini AI.
git clone <your-repo-url>
cd wealthlens
npm install
supabase/migrations/001_schema.sql| Key | Where to get |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | Supabase → Settings → API → Project URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Supabase → Settings → API → anon public |
SUPABASE_SERVICE_ROLE_KEY | Supabase → Settings → API → service_role |
ANTHROPIC_API_KEY | console.anthropic.com |
GEMINI_API_KEY | aistudio.google.com |
ENCRYPTION_SECRET | Run: openssl rand -hex 32 |
cp .env.example .env.local
# Fill in all values from step 3
npm run dev
# Open http://localhost:3000
npm install -g vercel
vercel
# Follow prompts — add all env vars when asked
wealthlens/
├── app/
│ ├── auth/ # Login, Signup, Forgot Password
│ │ ├── layout.tsx # Auth card layout
│ │ ├── login/page.tsx
│ │ ├── signup/page.tsx
│ │ └── forgot-password/page.tsx
│ ├── dashboard/ # All 7 dashboard sections
│ │ ├── layout.tsx # Sidebar + Topbar + ChatPanel
│ │ ├── page.tsx # Executive Dashboard
│ │ ├── expenses/page.tsx
│ │ ├── investments/page.tsx
│ │ ├── loans/page.tsx
│ │ ├── cards/page.tsx
│ │ ├── insurance/page.tsx
│ │ ├── budgets/page.tsx
│ │ └── ingest/page.tsx # Upload statements
│ └── api/
│ ├── auth/callback/ # OAuth redirect handler
│ ├── ai-advisor/ # Claude chat endpoint
│ ├── parse-statement/ # Gemini PDF parser
│ └── parse-insurance/ # Gemini insurance parser
├── components/
│ ├── layout/
│ │ ├── Sidebar.tsx # Navigation sidebar
│ │ ├── Topbar.tsx # View selector + FX rate
│ │ └── ChatPanel.tsx # AI advisor chat
│ ├── dashboard/ # Page-level client components
│ └── forms/ # Add modals
├── lib/
│ ├── supabase/client.ts # Browser Supabase client
│ ├── supabase/server.ts # Server Supabase client
│ └── crypto/encrypt.ts # AES-256 encryption
├── store/viewStore.ts # Global view state (Zustand)
├── middleware.ts # Auth route protection
└── supabase/migrations/001_schema.sql # Full DB schema
| Layer | Implementation |
|---|---|
| Authentication | Supabase Auth (email + Google OAuth) |
| Authorization | Row-Level Security on all 14 tables |
| Data encryption | AES-256-GCM for sensitive fields (account numbers) |
| File storage | Private Supabase buckets — per-user folder isolation |
| API routes | Server-side auth check on every endpoint |
| Transport | HTTPS enforced by Vercel |
India: HDFC, SBI, ICICI, Axis, Kotak, Standard Chartered
UAE: Emirates NBD, ADCB, FAB, Mashreq, ENBD
Any standard PDF bank statement will work — Gemini extracts intelligently
Q: Is my financial data safe?
A: Yes. Each user's data is isolated by Supabase RLS — no user can access another's data. Files are stored in private buckets accessible only to the owning user. Sensitive fields are AES-256 encrypted.
Q: Can I use this without the AI features?
A: Yes — all dashboards work without AI keys. AI features (PDF parsing, chat advisor) require GEMINI_API_KEY and ANTHROPIC_API_KEY.
Q: How accurate is the PDF parsing?
A: Gemini 1.5 Pro is excellent at structured extraction. Accuracy is 90-95% for standard bank PDFs. You can always review and edit parsed transactions before confirming.
Q: Can I add manual transactions?
A: Yes — use the Expenses page's quick-add or the AI Ingest page for manual entry.