尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證FinDB (Finance Dashboard): a personal finance tracker for India. Track bank accounts, credit cards, cash, income and expenses, with monthly summaries and a full activity log. Next.js, TypeScript and PostgreSQL.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
FinDB (Finance Dashboard) is a personal finance tracker for people in India. You record your money yourself: bank accounts, credit cards, cash, income and expenses. FinDB keeps every balance up to date and shows where your money went each month. It never connects to your bank. Amounts are in rupees with Indian digit grouping (5,00,000.00).檢視完整 README ↗FinDB (Finance Dashboard) is a personal finance tracker for people in India. You record your money yourself: bank accounts, credit cards, cash, income and expenses. FinDB keeps every balance up to date and shows where your money went each month. It never connects to your bank. Amounts are in rupees with Indian digit grouping (5,00,000.00).
Website. The official FinDB website is part of the same app: the home page, a page for every feature (marked available now, in development or planned), free calculators (EMI, which loan to close first, FD, RD, SIP, gold value, chit fund return, inflation), the roadmap, how to install the app, questions, security, privacy, terms and about.
App.
| Layer | Technology |
|---|---|
| App | Next.js 16 (App Router), React 19, TypeScript |
| API | Next.js route handlers in app/api, with the logic in lib/services |
| Database | PostgreSQL (Supabase) through pg, plain SQL |
| Hosting | Vercel |
| Tests | Jest and Playwright |
app/(site) The website: home, features, roadmap, get the app, questions, security, privacy, terms, about
app/(product) The app: sign-in screens and the logged-in screens
app/api API route handlers
components/ React components (components/site: the website's components and copy)
lib/ Server and shared code: database, sessions, rate limits, services
proxy.ts Per-request Content-Security-Policy; sends signed-out visitors to /login
next.config.ts Security headers
public/icons App icons for installing FinDB (scripts/generate-icons.js draws them)
setup-db.js Creates and updates the database schema (safe to rerun)
tests/ API tests, unit tests (tests/unit) and end-to-end tests (tests/e2e)
docs/ API reference and project status
Requirements: Node.js 20.9 or later, and a PostgreSQL database (for example a Supabase project).
npm install
Create a .env file:
DB_HOST=<database host>
DB_PORT=6543
DB_NAME=postgres
DB_USER=<database user>
DB_PASSWORD=<password>
DB_SSL=true
SESSION_SECRET=<64-byte hex string>
FIELD_ENCRYPTION_KEYS=1:<base64 of 32 random bytes> # docs/security.md
# Optional: the Postgres schema to use (default: public)
DB_SCHEMA=findb_dev
Generate a session secret with:
node -e "console.log(require('crypto').randomBytes(64).toString('hex'))"
Create the tables and start the app:
npm run setup-db # creates the tables in DB_SCHEMA (public if unset)
npm run dev # http://localhost:3000
| Command | What it does |
|---|---|
npm run dev | Development server on port 3000 |
npm run build / npm start | Production build and server |
npm run setup-db | Create or update the tables |
npm test | Build the app, start it against the balancetrack_test schema, and run all Jest tests |
npm run test:unit | Unit tests only (no database needed) |
npm run migrate:test / npm run migrate:status | Apply or list the SQL migrations in db/migrations/ |
npm run ledger:check | Read-only check that stored balances equal the ledger's (docs/ledger.md) |
npm run test:e2e | End-to-end browser tests (Playwright) |
npm run typecheck / npm run lint | TypeScript and ESLint checks |
Tests always use the balancetrack_test schema and refuse to run against any other, so they never touch real data. Put a separate test database's connection settings in .env.test (same keys as .env, git-ignored) and every test command uses it instead of the database in .env. Create the tables once with npm run setup-test-db.
FinDB runs on Vercel as a standard Next.js project (vercel.json sets the region, bom1 in Mumbai, next to the database).
.env for Production (Settings > Environment Variables). Use a different SESSION_SECRET and FIELD_ENCRYPTION_KEYS per environment.npm run setup-db once against the production database, then node scripts/migrate.js --production (after a backup, for later migrations).Only production is built: merging into master deploys production. Preview builds for other branches are skipped (ignoreCommand in vercel.json), which saves build time on the free plan. The Preview environment still points at the test database (balancetrack_test schema, with REQUIRE_TEST_SCHEMA=true), in case a preview is ever deployed by hand with vercel deploy.
ISC (declared in package.json).